2011年11月05日
ビットマップ画像の仕組み2
またまた備忘録となります。
今回も、こっそりアップです。ご興味があれば、どうぞ。
「これ何だ?正解は・・・」
「これ何だ?の種明し」
「ビットマップ画像の仕組み」
の続きです。
ここから先は、以前の記事もご覧にならないと
何やってんの?
が伝わらないかもしれません。
ビットマップ画像をエクセルのセルで、再現することに挑戦してます。
画像を4の整数倍で、トリミングしなければならない理由を
明らかにしてみたいと思います。
横8px 縦8pxの画像の仕組みは、
前回の記事で、なんとなく分かりました。
画像データの中身(バイナリデータ)を1バイトづつ書き出しました。

ここまでが、前回の内容。
横6px 縦8pxの画像がどうなっているか
前回と同じように、画像ファイルを1バイトづつ調べていきます。
エクセルのセルへ、1バイトづつ書き出しました。

◆ヘッダ部分
ファイルサイズ
◆情報ヘッダ部分
横幅 6
高さ 8
◆画像データ領域
6px × 3バイト = 18バイト
横幅を4の倍数バイトにするため、
端数2バイト分0を記録してあることが分かります。
さらに、ファイル全体が4の倍数バイトになるように、
ファイルの最後に、2バイト分0を記録してあることも
わかります。
いろいろ調べた結果、自分なりの解釈です。
なんか少し納得できました。
この端数が分からなくて、苦労しました。
ちなみに、横幅6pxの画像を、
今回のプログラムで実行すると
こうなります?(笑)

プログラミング技術で、この端数分を飛ばして、
読み込むプログラムを作ればいいのですが、
横幅を4の整数倍で、画像をトリミングする技術(笑)で、
対応しました。
次回は、プログラム部分の予定。
今回も、こっそりアップです。ご興味があれば、どうぞ。
「これ何だ?正解は・・・」
「これ何だ?の種明し」
「ビットマップ画像の仕組み」
の続きです。
ここから先は、以前の記事もご覧にならないと
何やってんの?
が伝わらないかもしれません。
ビットマップ画像をエクセルのセルで、再現することに挑戦してます。
画像を4の整数倍で、トリミングしなければならない理由を
明らかにしてみたいと思います。
横8px 縦8pxの画像の仕組みは、
前回の記事で、なんとなく分かりました。
画像データの中身(バイナリデータ)を1バイトづつ書き出しました。

ここまでが、前回の内容。
横6px 縦8pxの画像がどうなっているか
前回と同じように、画像ファイルを1バイトづつ調べていきます。
エクセルのセルへ、1バイトづつ書き出しました。

◆ヘッダ部分
ファイルサイズ
◆情報ヘッダ部分
横幅 6
高さ 8
◆画像データ領域
6px × 3バイト = 18バイト
横幅を4の倍数バイトにするため、
端数2バイト分0を記録してあることが分かります。
さらに、ファイル全体が4の倍数バイトになるように、
ファイルの最後に、2バイト分0を記録してあることも
わかります。
いろいろ調べた結果、自分なりの解釈です。
なんか少し納得できました。
この端数が分からなくて、苦労しました。
ちなみに、横幅6pxの画像を、
今回のプログラムで実行すると
こうなります?(笑)

プログラミング技術で、この端数分を飛ばして、
読み込むプログラムを作ればいいのですが、
横幅を4の整数倍で、画像をトリミングする技術(笑)で、
対応しました。
次回は、プログラム部分の予定。
スポンサーリンク
Posted by MEMO at 22:02│Comments(0)
│EXCEL劇場