αチャンネル付きPNGファイル読み込みDLLαチャンネル付きPNGファイル読み込みDLLReadMeこのDLLでできること半透過情報を持つPNGファイルを読み込み、その情報を保持したまま、指定したビットマップに書き込みます。特徴libpng+zlibを使用しています。このDLLの4つの関数を順に呼び出すだけで、PNGファイルを読み込むことができます。Delphi用のpasファイルが付属しています。一応マルチスレッドにも対応できるように設計してあります。(未検証)仕様24bitRGBカラーのPNGファイルまたは32bitRGBAカラーのPNGファイルのみ読み込むことができます。ソースに手を加えると、他形式にも対応できますが、個人的にはこれで十分であると判断したため、このような仕様になっています。要望があれば今後のバージョンで対応します。使用方法PNGファイルを利用するまでの全体的な流れは以下の通りです。FileName);PNGLoaderを初期化します。第1引数TPNGLoaderID型の変数を作成して、そのポインタを渡してください。ここで初期化したPNGLoaderで他の関数を使用する場合は、ここで渡したTPNGLoaderIDを渡して下さい。infop);PNGファイルの画像情報(大きさ、色数等)を取得します。第1引数CreatePNGLoaderで取得したPNGLoaderIDです。画像情報を取得する構造体変数を作成して、そのポインタを渡して下さい。PNGLINFO;カラーフォーマットは以下の通りです。hbmp);指定したビットマップに画像データを書き込みます。第1引数CreatePNGLoaderで取得したPNGLoaderIDです。有効なビットマップハンドルを渡して下さい。ビットマップの大きさや画像フォーマットが読み込むPNGファイルと異なるとエラーを返します。(bmBitsPixel等を正しく設定して下さい。)ビットマップのフォーマットについてはMSDN等を参照して下さい。PPNGLoaderID);ファイルをクローズし、メモリーを解放します。第1引数CreatePNGLoaderで取得したPNGLoaderIDへのポインタです。stdcall;PNGLoaderを初期化します。第1引数TPNGLoaderID型の変数を作成して、そのポインタを渡してください。ここで初期化したPNGLoaderで他の関数を使用する場合は、ここで渡したTPNGLoaderIDを渡して下さい。stdcall;PNGファイルの画像情報(大きさ、色数等)を取得します。第1引数CreatePNGLoaderで取得したPNGLoaderIDです。画像情報を取得する構造体変数を作成して、そのポインタを渡して下さい。//カラーフォーマットend;カラーフォーマットは以下の通りです。stdcall;指定したビットマップに画像データを書き込みます。第1引数CreatePNGLoaderで取得したPNGLoaderIDです。有効なビットマップハンドルを渡して下さい。ビットマップの大きさや画像フォーマットが読み込むPNGファイルと異なるとエラーを返します。(bmBitsPixel等を正しく設定して下さい。)ビットマップのフォーマットについてはMSDN等を参照して下さい。stdcall;ファイルをクローズし、メモリーを解放します。第1引数CreatePNGLoaderで取得したPNGLoaderIDへのポインタです。推奨環境このDLLは、PNGファイルから取り出した画像データをビットマップに書き出しますが、Delphi上でbuin2gou氏のbuinGLに含まれるTABitmapの使用を想定して作られています。TABitmapを利用すると、簡単に他の画像等との半透過合成が行えるので非常に便利です。PNGファイルに含まれていた半透過情報を維持したまま利用できます。まっさ氏の「透過対応PNG保存プラグイン」を推奨します。Developer動作テストは、上記の推奨環境で行っています。ライセンス商用、非商用に関わらず自由に使用して下さい。このライブラリが原因で、いかなる問題が発生したとしても、作者は責任を負えませんので、自己責任での使用をお願いします。使用連絡は必要ありませんが、どのようなソフトウェアに使われているのかを知りたいので、連絡して頂けると嬉しいです。(フリーウェアであれば、ダウンロードしに行きます。シェア、商用であれば...提供して頂けると嬉しいですね)また、ドキュメント等にこのライブラリを使用していることを一言書いて頂けると幸いです。要望に応えられるわけではありませんが、要望、バグなどの連絡もお待ちしております。