2018年5月31日木曜日

24bit BMP -> RGB565 変換ツール 組み込み向け

24bitBMPをRGB565形式でbinファイル、またはC言語配列形式でtxtに出力するツールを作りました。
またランレングス圧縮して出力する機能を備えています。


ダウンロードリンク

当ツールには下記のような7つのモードがあります。

1. 24bit BMPをRGB565に減色し、binファイルで出力します。
2. 24bit BMPをRGB565に減色し、圧縮してbinファイルで出力します。
3. 24bit BMPをRGB565に減色し、C言語の配列形式でtxtファイルに出力します
4. 24bit BMPをRGB565に減色,圧縮し、C言語の配列形式でtxtファイルに出力します。
5. binファイルをC言語配列形式で出力します。
6. binファイルを圧縮し、C言語配列形式で出力します。
7. binファイルを圧縮し、binファイルに出力します。


binファイルには画像の左上から右に向かってデータが格納されています。
圧縮の方式はランレングス圧縮です。
仕組みが簡単なので圧縮も簡単ですが、高精細な画像とかを圧縮するとかえってデータサイズが大きくなります。
背景が冗長な画像などには大きな効果があります。
本ツールの2,4,6,7モードでは圧縮率が表示されます。
圧縮率が0.5なら、圧縮によってデータサイズは50%になっています。

圧縮後のデータ形式は

{ 次の2byteで示される色が連続する数(1byte) , RGB565下位(1byte) , RGB565上位(1byte) }

のように出力され、画素数が255を超える場合は上記3byteブロックが複数にわたって出力されます。
例えば画素数が300ならば、データは

{ 0xFF(255個) , RGB565下位 , RGB565上位 , 0x2D(45個) , RGB565下位 , RGB565上位}

というふうになります。

以下の画像は実際にbmp画像を変換してみた例です。

出力形式,圧縮形式などの詳しい説明はreadme.txtに記載していますのでご覧ください。