C++BuilderでPNGファイルを扱う

C++Builder MLで話題になっていた、Delphi/C++BuilderからPNGファイルを扱うPNG Delphiというライブラリを試してみました。

簡単な使い方

  1. PNG Delphiからダウンロードして展開します。
  2. プロジェクトと同じフォルダに、pasファイルとobjフォルダをコピーします。
  3. プロジェクトにpngimage.pasを追加します。
  4. コードに #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

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください