TGIFImageを使って、GIFファイルを扱う方法を説明します。
TGIFImageを使うには「GIFImg.hpp」をincludeします。
#include <GIFImg.hpp>
#include <GIFImg.hpp>
TGIFImage* gif = new TGIFImage();
gif->LoadFromFile("C:\\sample.gif");
TGIFImage* gif = new TGIFImage();
…
gif->SaveToFile("C:\\sample2.gif");
「GIFImg.hpp」をincludeすると、GIFファイルを読み込むことができます。
#include <GIFImg.hpp>
Image1->Picture->LoadFromFile("C:\\sample.gif");
TGIFImageの内容をTImageに表示する場合はAssign()メソッドを使用します。
TGIFImage* gif = new TGIFImage();
gif->LoadFromFile("C:\\sample.gif");
Image1->Picture->Assign(gif);
GIFファイルでは複数画像を1つのファイルに格納できます。
そこで、「gif->Images->Frames[0]」で処理する画像を選択して、プロパティを設定します。
Graphics::TBitmap* bmp = new Graphics::TBitmap();
bmp->LoadFromFile("C:\sample.bmp");
TGIFImage* gif = new TGIFImage();
gif->Assign(bmp);
//先頭の画像に対して
TGIFGraphicControlExtension* ext = new TGIFGraphicControlExtension(
gif->Images->Frames[0]);
ext->Transparent = true; //透過
ext->TransparentColor = clWhite; //透過色
TGIFImage.Assign()メソッドでは、TBitmapの透過色の設定も引き継がれます。
そこで、TBitmapで透過色の設定を行うこともできます。
Graphics::TBitmap* bmp = new Graphics::TBitmap();
bmp->LoadFromFile("C:\sample.bmp");
bmp->Transparent = true;
bmp->TransparentColor = clWhite;
TGIFImage* gif = new TGIFImage();
gif->Assign(bmp);
TGIFImage.ColorReductionプロパティで、ビットマップをインポートした時に使われる減色メソッドを指定することができます。
使用できる減色方法をヘルプから引用します。
rmNone
いかなる減色も実行しない。
rmWindows20
Windows の20色システムパレットに減色する。
rmWindows256
Windows の256色ハーフトーンパレットに減色する。これは256色ディスプレイモードだけで動作する。
rmWindowsGray
Windows の4色グレースケールカラーに減色する。
rmMonochrome
黒/白のモノトーンパレットに減色する。
rmGrayScale
均一な256色シャドーグレースケールパレットに減色する。
rmNetscape
Netscape 216色カラーパレットに減色する。
rmQuantize
最適な 2^n カラーパレットに減色する。
rmQuantizeWindows
最適な256色Whindosパレットに減色する。
rmPalette
カスタムパレットへ減色する。