2

すべて対処し、

MFC2010 でアニメーション gif 形式の画像をビットマップ ファイルにデコードする必要があります。GIF画像をデコードするライブラリはありますか? プログラムは Windows XP で実行する必要があるため、GDIPlus を使用できません。誰かがライブラリ、Activex、dll、または同様のものを提供してくれたらありがたいです。

どうもありがとう、 シャービン・ザーガム

4

4 に答える 4

1

WIC (Vista に含まれ、XP で使用可能) はCLSID_WICGifDecoder、COM コンポーネントを提供します。

于 2013-05-02T13:38:28.780 に答える
1

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;
    }
  }
于 2013-08-12T20:28:04.287 に答える