Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Memory leaks 使用ImageMagick调整动画gif大小时内存泄漏_Memory Leaks_Resize_Imagemagick_Animated Gif_Magickwand - Fatal编程技术网

Memory leaks 使用ImageMagick调整动画gif大小时内存泄漏

Memory leaks 使用ImageMagick调整动画gif大小时内存泄漏,memory-leaks,resize,imagemagick,animated-gif,magickwand,Memory Leaks,Resize,Imagemagick,Animated Gif,Magickwand,我正在尝试用ImageMagick MagickWand调整动画GIF的大小,但会出现一些小内存泄漏~每400 GIF 3 Mb。我不能百分之百确定我是否正确使用了魔法棒 magickwandenesis(); MagickCore::MagickWand*magick_wand=NewMagickWand(); MagickCore::MagickWand*magick_wand2=NewMagickWand(); for(std::vector::iterator it=gifs.begin

我正在尝试用ImageMagick MagickWand调整动画GIF的大小,但会出现一些小内存泄漏~每400 GIF 3 Mb。我不能百分之百确定我是否正确使用了魔法棒

magickwandenesis();
MagickCore::MagickWand*magick_wand=NewMagickWand();
MagickCore::MagickWand*magick_wand2=NewMagickWand();
for(std::vector::iterator it=gifs.begin();it!=gifs.end();++it)
{   
inputFileName=“C:\\Projects\\gifs\\”+*it+.gif”;
outputFileName=“C:\\Projects\\gifs\\out\\\\”+*it+“.gif”;
MagickReadImage(magick_wand,inputFileName.c_str());
int width=MagickGetImageWidth(magick_wand);
int height=MagickGetImageHeight(magick_wand);
magick_wand2=magick合并图像(magick_wand);
透明魔杖(魔杖);
如果(宽度>缩略图宽度)
{
高度=静态投影(高度*缩略图宽度/宽度);
宽度=144;
}
如果(高度>缩略图高度)
{
宽度=静态投影(宽度*缩略图高度/高度);
高度=144;
}
MagickResetIterator(magick_wand2);
while(MagickNextImage(magick_wand2)!=MagickFalse)
MagickResizeImage(magick_wand2,宽度,高度,MitchellFilter,1);
magick_wand=magickImageLayers(magick_wand2);
ClearMagickWand(magick_wand2);
MagickWriteImages(magick_wand,outputFileName.c_str(),MagickTrue);
透明魔杖(魔杖);
}
摧毁魔杖(魔杖);
摧毁魔杖(魔杖2);
MagickWandTerminus();

我试着用一个魔法棒而不是两个,但是功能不能正常工作,泄漏更大。我还尝试在for循环中初始化MagickWand,但没有帮助。有了这段代码,GIF的大小和优化都是正确的。
检测到的内存泄漏\u CrtDumpMemoryLeaks()
。它们在Windows任务管理器中也很明显。

ImageMagick的版本是什么?我一直在使用ImageMagick 6.7.8-4 Q8 x64 RL