MAG圧縮画像を超簡単にBMP(DIB)にデコードできるANSI-C汎用コード
M2BC(読み:エムツービーシー)は、MAG圧縮画像を超簡単にBMP(DIB)にデコードできるANSI-C汎用コードです。32bit以上のポインタが扱える一般的なCコンパイラで使用することができます。
○特長
・とにかく、簡単に扱えるように設計しました。
Cの初心者の人でも、簡単にMAG形式の圧縮画像を利用できます。
・この種のものにしてはデコードの為に要するメモリが極めて小量で、速度も、640*480 の256色のMAG画像を486-133MHzのT-OSで一枚あたり平均0.1秒でBMPに展開できます。アプリのパフォーマンスに悪影響を及ぼすことはありません。また,MAG形式は可逆圧縮なので,画質が劣化するという心配もいりません。
・貴方のプログラムにこれを組み込む時に追加する処理は、BMPをロードする場面でM2BCの関数を呼び出してMAG圧縮画像をBMP画像メモリイメージに変換する処理だけです。初期化や終了処理等の手間や,混乱の元になるグローバル変数が必要無く、いつでも関数を呼び出せるのですぐに組み込めると思います。
・このコードが含まれたプログラムは、私用・商用問わず自由に組み込みできます。連絡も強制しません。また,MAG画像形式自体も,使用においていかなる制限もなく全く自由です。
Windowsのアプリケーションやゲームのファイルを見てみると、圧縮されないので無意味に容量を喰ってるBMPを抱え込んでるソフトが多いので簡単・自由に圧縮画像を扱えるコードを作れば有用なのではないかと思い、制作しました。
ちなみに,Windows95のBorland C++Builderを使用している人の場合,M2BCをBorland C++Builderで扱いやすいように変更したTM2BCを疋田雅也氏が公開されているので,そちらを利用するのがよいかと思います。
☆バージョンアップの内容
Ver1.06 -> 1.07
・MAG画像ヘッダ情報構造体に,どんな凶悪な破損をしているMAG画像ファイルでも不具合を起こさないバッファの大きさを示すメンバsafe_magfilebufsize,safe_bmpbufaddsizeを追加。
・M2BCSAMP.CのMMAG_MagtoBmp()が一部の後尾欠落MAG画像に対応していなかったバグを修正しました(岩瀬さんに感謝!!)
・M2BC.CのMMAG_decordMagPixel()の変数putbufとflagのregister指定を外しました。
・マニュアルでの,MAG画像を生成するエンコーダーの紹介を大幅に改訂しました。