PNGを読み込む(VC++でlibpngを使用する)

libpngというライブラリを使えば比較的簡単にPNGを読み込むことが出来ます。
これを書いている2002/06/08現在の最新版はlibpng 1.2.3です。

なおlibpngの使用にはzlibが必要です。zlibの配布ページやビルド方法についての解説がありますので事前に用意しておいてください。

libpngのビルド(libpng.libの作成)

  1. 事前にzlibをビルドしておきます。
  2. libpng Home Pageからlpng123.zipというファイルを落としてきます。
  3. VC++を起動して、「ファイル」→「新規作成」から「Win32 Static Library」を選択します。
    「プロジェクト名」と「位置」は適当に決めて「OK」を押します。
    ここでは「libpng」と「c:\libpng」を指定したことにします。
    次のダイアログの「MFCサポート」は、MFCプログラムに組み込む場合はオンにしておいてください。
  4. 「位置」に指定した場所(ここではc:\libpng)にlpng123.zipを解凍します。
    さらに以下のファイルをc:\libpngにコピーします。
    c:\zlib\zlib.h
    c:\zlib\zconf.h
    VC++で「プロジェクト」→「プロジェクトへ追加」→「ファイル」でc:\libpngにあるcファイルとhファイルを全て追加します。
  5. おもむろにビルドします。エラーがでなければ成功です。
    c:\libpng\debugもしくはc:\libpng\releaseのなかにlibpng.libができていると思います。

libpngを自作プログラムに組み込む

  1. 以下のファイルを組み込みたいプログラムのディレクトリにコピーします。
    c:\libpng\png.h
    c:\libpng\pngconf.h
    c:\libpng\debug\libpng.lib もしくは c:\libpng\release\libpng.lib
    c:\zlib\zconf.h
    c:\zlib\zlib.h
    c:\zlib\debug\unzip.lib もしくは c:\zlib\release\unzip.lib
    loadpng.cpp
    loadpng.h
  2. VC++で「プロジェクト」→「プロジェクトへ追加」→「ファイル」でコピーしたloadpng.cppを追加します。
  3. あとはloadpng.hをインクルードすれば、pngを読み込むLoadPng関数が使えます。
  4. LoadPng関数の使い方
    HBITMAP LoadPng(const string &strFilename);
    strFilename 読み込みたいPNGファイルを指定します。
    戻り値 読み込みに成功すればビットマップのハンドルを、失敗すればNULLを返します。
    このビットマップはDIBSectionです。



[戻る]

logo