[英]C++: Magick++: Resize breaks PixelPacket, and causes to return a nullptr
#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);
}
信息:
#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
無法解決問題。 作物不會造成問題,但縮放和調整大小會造成問題。 另外,如果我把Thumbnail.write("test.jpg");
Pixels viewThumbnail(...)
之前是有效的jpeg圖像
使用以下方法可以解決此問題:
Geometry Size = Geometry(twidth, theight);
Size.aspect(true);
Thumbnail.resize(Size);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.