中井技術工房  VC/MFC による PNG画像変換
VC++6 による BMP/PNG 画像変換ソフトの作り方 Feb.02,2010

トップ > PNG画像変換トップ > ここ


VC++6 BMP/PNG DF変換プログラムの作り方

ここではVC++6.0 を使った BMP DFとPNG DFの相互変換ソフトの作り方を紹介します。

基本的な考え方

現在公開されている BMP/PNG 変換ソフトとそのソフトのベースになっているライブラリを効率よく利用して、PNG/BMP の主要なタイプの画像を変換することにします
どうも公開ソフトは、ソースを覗くと、ありとあらゆるタイプに対応しようとして、ぐじゃぐじゃで理解不能です。

ところが、ネット上にあふれている PNG/BMP 画像はほとんどがそんな特殊なものでなく、変換ソフトとか画像Viewerにはそれらに対応するだけで十分です。


ソフトの組み立て方

「参考にした公開ソフト」

次の2本の公開ソースをたたき台にしました。

1) PNG 利用術(http://gmoon.jp/png/)

2) bmp2png & png2bmp Ver.1.62 ソースファイル集(http://cetus.sakura.ne.jp/softlab/software/b2psrc.html)

「必要なライブラリ」

2つのソフトとも、libpng,zlib のライブラリが必要ですので、「 VC6による libpng のコンパイル 」の頁にコンパイルの仕方を示しています。
なお、いろいろあって、DLL 化はあきらめて、スタティックライブラリを使うことにしました。
ユーザーソフトに丸ごと抱え込むので、実行ファイルが大きくなる欠点はありますが。

こんな感じで動かします。


「公開ソフトの問題点」

上記の2つのソフトとも、Win32 対応のソフト=昔ながらのコーディングになっています。
そのため、MFC 風のコーディングになれた人は、
うっ と、ここでつまずいてしまいます。
自分のソフトにうまく取り込めないのです。

そこで、MFC のソフトから、これらのC 風関数を呼び出すサンプルを組み立てることにしました。
C / MFC の折衷案みたいなソフトになっています。

もう1つの問題は、libpng もそうですが、変数がポインタなのか値なのか、非常にわかりにくいのです。
これは他人のものなのでケチのつけようがありませんが...。

「ソフト組み立て方針」

上流のファイルサーチなどは、MFC コーディングの方が圧倒的に楽なので、そちらを使用し,BMP/PNG 変換の部分だけをライブラリ使用のC風スタイルでコーディングし、上記2本からのパクリと改造でいきます。



トップ > PNG画像変換トップ > 頁トップ