C++BuilderでPNGファイルを扱う
C++Builder MLで話題になっていた、Delphi/C++BuilderからPNGファイルを扱うPNG Delphiというライブラリを試してみました。
簡単な使い方
- PNG Delphiからダウンロードして展開します。
- プロジェクトと同じフォルダに、pasファイルとobjフォルダをコピーします。
- プロジェクトにpngimage.pasを追加します。
- コードに #include "pngimage.hpp" を追加します。
以上で、使えます。
サンプル
//---------------------------------------------------------------------------
/**
* BitmapファイルをPNGファイルに変換する。
*/
void __fastcall TForm1::Button1Click(TObject *Sender)
{
//Bitmapファイルを選択する
if (!OpenDialog1->Execute()) return;
//Bitmapファイルを開く
Graphics::TBitmap* bitmap = new Graphics::TBitmap();
bitmap->LoadFromFile(OpenDialog1->FileName);
//PNGファイルに変換して保存する
TPNGObject* png = new TPNGObject();
png->Assign(bitmap);
png->SaveToFile(ChangeFileExt(OpenDialog1->FileName, ".png"));
delete png;
delete bitmap;
}
TPNGObjectは、TBitmapやTJPEGImageと同じ感覚で使えます。
//---------------------------------------------------------------------------
/**
* PNGファイルを表示する
*/
void __fastcall TForm1::Button2Click(TObject *Sender)
{
//PNGファイルを選択する
if (!OpenDialog1->Execute()) return;
//PNGファイルを表示する
Image1->Picture->LoadFromFile(OpenDialog1->FileName);
}
//---------------------------------------------------------------------------
なぜか、TPicture::LoadFromFile()でPNGファイルが読み込めるようになりました。
手軽に使えるのが素敵なライブラリです。
追記
C++Builder 2009では、標準でPNGファイルを扱うことができるようになりました。
PNGファイルを扱う - C++Builder Tips