16 x 16の画像で、適当な絵を書きます(WindowsならMS Paintで良いです)。上記は「花」と描いています。
「ファイル」「名前を付けてエクスポート」にて、拡張子はBMPとして名前を付けたら「エクスポート」を実行します。
「画像のエクスポート」のダイアログが出現するので、「互換性のオプション」、「互換性色空間の情報を書き込まない」にチェックを付けます。
gimp-bitmap16x16.bmpという名前を付けて保存しました。
上記のファイルをメモリダンプするとこのように表示されます。
~$ od -tx1 -Ad gimp-bitmap16x16.bmp | head 0000000 42 4d 36 03 00 00 00 00 00 00 36 00 00 00 28 00 0000016 00 00 10 00 00 00 10 00 00 00 01 00 18 00 00 00 0000032 00 00 00 03 00 00 13 0b 00 00 13 0b 00 00 00 00 0000048 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ff 0000064 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff * 0000144 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 00 0000160 00 00 ff ff ff ff ff ff ff ff ff ff ff ff 00 00 0000176 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0000192 00 00 00 ff ff ff ff ff ff ff ff ff ff ff ff 00 ~$
BITMAPのヘッダ部分を-j54スキップ指定して取り除き純データを3列毎に表示してみます。
3バイトでRGBデータとなっています。
~$ od -tx1 -An -j54 -w3 gimp-bitmap16x16.bmp | head ff ff ff * 00 00 00 ff ff ff * 00 00 00 * ff ff ff * 00 00 00 ~$
白だとFF FF FF、黒だとそれ以外になっていますが、一色(1バイト)のみ見て判定します。cutの-bオプションで1列目だけを抽出します(バイト指定ですので、2バイト目、3バイト目)。
odはデフォルトだと連続するデータを*に置き換えて省略します。これを-vオプションを指定し、省略をなくします。さらにprで16バイトずつで整形して表示してます。
~$ od -tx1 -An -j54 -w3 -v gimp-bitmap16x16.bmp | > cut -b2,3 | pr -t16l1 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 00 ff ff ff ff 00 00 00 00 00 00 00 ff ff ff ff 00 ff ff ff ff 00 00 00 ff ff ff 00 ff ff 00 ff 00 ff ff ff ff 00 ff ff ff ff ff 00 ff ff ff 00 00 ff ff ff ff 00 ff ff ff ff ff ff ff ff ff 00 00 ff ff ff ff 00 00 00 00 00 ff ff ff ff ff ff 00 00 ff ff ff 00 ff ff 00 00 ff ff ff ff ff fd 00 00 00 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 00 ff ff ff 00 ff ff ff ff ff ff ff ff ff ff ff 00 ff ff fe 00 fc ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 00 00 00 ff ff ff ff ff fd ff ff 00 ff ff fd 00 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ~$
よーく目を凝らすとわかりますが、花という文字が逆になって浮かんで見えますね。
以下のようにsedで置換してtacで上下逆さにすると、はっきり分かります。
~$ od -tx1 -An -j54 -w3 -v gimp-bitmap16x16.bmp | > cut -b2,3 | pr -t16l1 | tac | sed 's/00/ /g' ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff fd ff ff ff ff fd ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff fe fc ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff fd ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ~$
では、bmp画像をsysvbanner風バナー表示してみましょう。
~$ od -tx1 -An -j54 -w3 -v gimp-bitmap16x16.bmp | > cut -b2,3 | sed 's/00/#/g;/00/!s/.././g' | > pr -t16Jl1 | tac | sed 's/\t//g;s/\./ /g' # # ########### # # # # ### ## # ## ## ##### ## # # # # # # ### # # ####### ~$
コメント