« 損失回避性 | メイン | Delphi for PHP、Delphi for Ruby雑感 »

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

トラックバック

このエントリーのトラックバックURL:
http://www.gesource.jp/mt/mt-tb.cgi/308

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)

About

2007年03月08日 23:05に投稿されたエントリーのページです。

ひとつ前の投稿は「損失回避性」です。

次の投稿は「Delphi for PHP、Delphi for Ruby雑感」です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。

Powered by
Movable Type 3.35