RGB565の画像データを必要とするケースというと、主に組み込みでVRAMに書かないいけないとかそういうケースがほとんどかなぁと思うので、割とニッチではあるのだけど仕事などでやっているとたまに「さくっとPCでテスト用画像を作ってRGB565にしたいなぁ」と思うことがある。
とりあえずちょっとしたテスト用として、C言語のソースにバイナリデータとして埋め込んで動作させたいとかいう時もあるかと思う。
何か使えるツールはないだろうかと探していたら、GIMPが使えることが分かった。
分かった、と書いているけどGIMPでRGB565でのC言語ソース出力の機能は最新のGIMP2.8の一つ前、2.7から搭載されている機能らしい。
とりあえず方法。
1.絵を描く
必要な幅高さなどの条件で絵を描きます。他の画像ファイルを読み込ませても良いはず。
2."Cソースコード"形式でエクスポートする
メニューから、「ファイル」→「エクスポート」を選択すると画像の出力形式を選ぶ画面になる。ここで「ファイル形式の選択」で"C ソースコード"を選択する。
3.出力オプションでRGB565を選ぶ
Cソースコードで出力を選ぶと、このようなオプション画面が出るのでRGB565形式で保存、のチェックボックスを入れる。他の項目はお好みで…と言いたいところだが、どうもGIMPのバグなのか?チェックボックスの組み合わせによっては、RGB565形式で出力されないパターンがあったので要注意。
出力結果
このように幅、高さ、1ピクセルあたりのバイト数、画像データが構造体の形でファイルに出力される。
このまま使うも良し、必要に応じてデータ部のみ抜き出して使うも良し。
注意点
・出力オプションで"structではなくマクロを使う"を選択すると、#define部がRGB565形式で出力されない。(データ部はRGB565で吐かれている)
・出力形式を"Cヘッダファイル"にするとRGB565では出力されない
バイナリで出力したい場合はどうすればいいのだろう…。Windows BMP形式だとRGB565で出力するオプションがあるので、いったんBMPで出力してBMPヘッダを削ればいいのかな…?
コメント