[英]how to write images as gif to blob using imagemagick Magick++
[英]How to resize and save gif file with Magick++ without animation loss
我有下一个调整图像大小的代码:
Image image;
image.read( imagePath.toStdString() );
Geometry newSize = Geometry(m_newSize.width(), m_newSize.height());
newSize.aspect(true);
image.resize(newSize);
image.write(newImagePath.toStdString());
此代码适用于非gif文件。 对于gif文件我丢失动画:
如何在没有动画丢失的情况下调整gif文件大小?
我找到了解决方案! 谢谢MofX的正确方向!
Geometry newSize = Geometry(m_newSize.width(), m_newSize.height());
newSize.aspect(true);
list<Image> frames;
readImages(&frames, imagePath.toStdString());
for (auto& image : frames)
image.resize(newSize);
writeImages(frames.begin(), frames.end(), newImagePath.toStdString());
您必须使用readImages和animateImages将动画的所有帧读入图像列表并将其添加到动画中。
请访问http://www.imagemagick.org/Magick++/STL.html查看此示例:
#include <list>
#include <Magick++.h>
using namespace std;
using namespace Magick;
int main(int /*argc*/,char **/*argv*/)
{
list<Image> imageList;
readImages( &imageList, "test_image_anim.gif" );
Image appended;
appendImages( &appended, imageList.begin(), imageList.end() );
appended.write( "appended_image.miff" );
return 0;
}
唯一的问题是,文档说,animatImages只能在X11下工作
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.