magick++ 把图片合成gif文件,并设置每张图片的延时时间

#include "Magick++.h"
#include 
#include 
#include #include "Utils.h"
保存每一帧的图片信息
//struct ImageInfo
//{
//	uint32_t delayTime;//延时时间,单位ms
//	uint16_t quality;//图片压缩质量
//	wchar_t filePath[_MAX_PATH];//文件全路径
//	bool isDelete;//是否剔除
//};
using namespace std;
using namespace Magick;
int main(int argc , char* argv[])
{//添加magickMagick::InitializeMagick(NULL);//使用多张图片,设置每张图片的时间,来生成gif图片std::vector fileList;std::wstring file1 = L"F:\\imagemagick\\恐龙\\dest-0.jpg";std::wstring file2 = L"F:\\imagemagick\\恐龙\\dest-1.jpg";std::wstring file3 = L"F:\\imagemagick\\恐龙\\dest-2.jpg";std::wstring file4 = L"F:\\imagemagick\\恐龙\\dest-3.jpg";std::wstring file5 = L"F:\\imagemagick\\恐龙\\dest-4.jpg";std::wstring file6 = L"F:\\imagemagick\\恐龙\\dest-5.jpg";std::wstring file7 = L"F:\\imagemagick\\恐龙\\dest-6.jpg";std::wstring file8 = L"F:\\imagemagick\\恐龙\\dest-7.jpg";std::wstring file9 = L"F:\\imagemagick\\恐龙\\dest-8.jpg";std::wstring file10 = L"F:\\imagemagick\\恐龙\\dest-9.jpg";std::wstring file11 = L"F:\\imagemagick\\恐龙\\dest-10.jpg";std::wstring file12 = L"F:\\imagemagick\\恐龙\\dest-11.jpg";std::wstring file13 = L"F:\\imagemagick\\恐龙\\dest-12.jpg";std::wstring file14 = L"F:\\imagemagick\\恐龙\\dest-13.jpg";std::wstring file15 = L"F:\\imagemagick\\恐龙\\dest-14.jpg";std::wstring file16 = L"F:\\imagemagick\\恐龙\\dest-15.jpg";std::wstring file17 = L"F:\\imagemagick\\恐龙\\dest-16.jpg";fileList.push_back(file1);fileList.push_back(file2);fileList.push_back(file3);fileList.push_back(file4);fileList.push_back(file5);fileList.push_back(file6);fileList.push_back(file7);fileList.push_back(file8);fileList.push_back(file9);fileList.push_back(file10);fileList.push_back(file11);fileList.push_back(file12);fileList.push_back(file13);fileList.push_back(file14);fileList.push_back(file15);fileList.push_back(file16);fileList.push_back(file17);try{std::vector lstImages;/*for (auto strImg : fileList){Magick::Image img;img.read(CUtils::Unicode_To_Utf8(strImg));img.animationDelay(5);img.quality(75);lstImages.push_back(img);}*/Magick::Image img;img.read(CUtils::Unicode_To_Utf8(file1));img.quality(50);//压缩图片std::wstring outFile = L"F:\\imagemagick\\恐龙\\temp.jpg";//奇怪必须存储之后重新获取,gif才压缩了img.write(CUtils::Unicode_To_Utf8(outFile));img.read(CUtils::Unicode_To_Utf8(outFile));img.animationDelay(500);lstImages.push_back(img);img.read(CUtils::Unicode_To_Utf8(file4));img.animationDelay(50);img.quality(50);lstImages.push_back(img);img.read(CUtils::Unicode_To_Utf8(file5));img.animationDelay(50);img.quality(50);lstImages.push_back(img);img.read(CUtils::Unicode_To_Utf8(file9));img.animationDelay(5);img.quality(50);lstImages.push_back(img);std::wstring outPath = L"F:\\imagemagick\\恐龙\\dest2.gif";Magick::writeImages(lstImages.begin(), lstImages.end(), CUtils::Unicode_To_Utf8(outPath));}catch (Exception &error){cout << "Caught exception: " << error.what() << endl;return 1;}//从视频生成gif,需要设置尺寸,持续时间,帧率//gif图片压缩return 0;
}

 


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部