2013-11-14 63 views
0
#include <Magick++.h> 
using namespace std; 
using namespace Magick; 

int main(int argc,char **argv) 
{ 
    InitializeMagick(*argv); 
    Thumbnail.read(argv[1]); 
    Thumbnail.resize(Geometry(50, 50)); 

    Pixels viewThumbnail(ResizedThumbnail); 
    PixelPacket *ThumbnailPixels = viewThumbnail.get(0, 0, 50, 50); 
} 

信息:C++:Magick ++:調整休息PixelPacket,並導致返回nullptr

#define MagickPackageName "ImageMagick" 
#define MagickCopyright "Copyright (C) 1999-2012 ImageMagick Studio LLC" 
#define MagickSVNRevision "8535" 
#define MagickLibVersion 0x677 
#define MagickLibVersionText "6.7.7" 
#define MagickLibVersionNumber 5,0,0 
#define MagickLibAddendum "-10" 
#define MagickLibInterface 5 
#define MagickLibMinInterface 5 
#define MagickReleaseDate "2013-09-10" 
#define MagickChangeDate "20120628" 
#define MagickAuthoritativeURL "http://www.imagemagick.org" 

g++ --version 
g++ (Ubuntu/Linaro 4.7.3-1ubuntu1) 4.7.3 
Copyright (C) 2012 Free Software Foundation, Inc. 
This is free software; see the source for copying conditions. There is NO 
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 

uname -r && lsb_release -rd 
3.8.0-26-generic 
Description: Linux Mint 15 Olivia 
Release:  15 

當我調整縮略圖它使PixelPacket回報nullptr不管我選擇什麼尺寸,並使用Image ResizedThumbnail = Thumbnail不能解決問題。作物不會引起問題,但會進行縮放和調整大小。另外,如果我以前Pixels viewThumbnail(...) test.jpg放在放Thumbnail.write("test.jpg");是一個有效的JPEG圖像

+1

對於紀錄,[GraphicsMagick工具(http://www.graphicsmagick.org/ )更可靠。當我離開IM時,所有那些神祕的bug都從我的程序中消失。 – DanielKO

+0

@DanielKO謝謝,我切換,因爲我討厭的語法 – linuxrules94

回答

0

使用下列修復該問題:

Geometry Size = Geometry(twidth, theight); 
Size.aspect(true); 
Thumbnail.resize(Size);