すべて対処し、
MFC2010 でアニメーション gif 形式の画像をビットマップ ファイルにデコードする必要があります。GIF画像をデコードするライブラリはありますか? プログラムは Windows XP で実行する必要があるため、GDIPlus を使用できません。誰かがライブラリ、Activex、dll、または同様のものを提供してくれたらありがたいです。
どうもありがとう、 シャービン・ザーガム
WIC (Vista に含まれ、XP で使用可能) はCLSID_WICGifDecoder
、COM コンポーネントを提供します。
VS210でテストされたImageMagickのC ++ API(Magick ++)を使用してこれを試してください:
#include <Magick++.h>
#include <string>
#include <iostream>
#include <list>
using namespace std;
using namespace Magick;
void kk(char * nombre, char *ext)
{
/* list of Image to store the GIF's frames */
std::list<Magick::Image> imageList;
/* read all the frames of the animated GIF */
Magick::readImages( &imageList, nombre );
/* compone las diferencias para obtener los cuadros reales */
Magick::coalesceImages(&imageList,imageList.begin( ),imageList.end( ));
/* store each frame in a separate BMP file */
list <Magick::Image>::iterator it;
int i=1;
for ( it = imageList.begin( ); it != imageList.end( ); it++ , i++)
{
std::string name = "frame" + to_string((_Longlong)(i)) + ext ;
it->write(name);
}
}
int main( int /*argc*/, char ** argv)
{
// Initialize ImageMagick install location for Windows
InitializeMagick(*argv);
try {
kk("luni0.gif", ".png"); // using ".bmp", ".jpg", ".png", OK
return 0;
}
catch( exception &error_ )
{
cout << "Caught exception: " << error_.what() << endl;
return 1;
}
}