2025/11/25

QR コードの作画:#2)白黒ビットマップの構造

まずは、ビットマップファイルの構造を整理します。


ビットマップと画像フォーマット

画像を構成する各点(ピクセル)の色をそのまま記録したファイル形式です。非圧縮が基本的となるので画像の品質は劣化しませんが、ファイルサイズは大きくなりがちです。Windows 3.0 からは仕様も安定し一気に普及しました。当時は PC の能力が低かったこともあり、非圧縮でそのまま読み込めるビットマップ形式が扱いやすかったというからだそうです。

Windows の GUI 向上に伴い、8 bit(256色)、16 bit(High Color)、24 bit(True Color)と色数が拡張されたました。ただ、Web の登場に伴い PNG(可逆圧縮)や JPEG(非可逆圧縮)などファイルサイズが比較的小さいフォーマットが主流となりました。

ビットマップは Windows で扱える画像フォーマットの元祖のような存在ですので、仕様がシンプルです。特に今回作成する画像は QR コード、色数は 1 bit(2色)となります。もっとも単純な仕様に限定してまとめます。


ビットマップファイルの構造

ビットマップファイルは次の4つのブロックで構成されています。

サイズ ブロック 説明
14 byte ファイルヘッダ ビットマップファイルの総合的な管理情報
40 byte 情報ヘッダ 画像の大きさ、色数など画像フォーマットの情報
8 byte カラーパレット カラーパレット情報
可変長 画像データ 画像の各ピクセルを 16 進数に変換して記録

次のようなシンプルなビットマップ画像を例にします。

画像ファイルをバイナリエディタで開きブロックごとに色分けすると次のようになります。


次回の予定

今回はビットマップを構成する 4 つのブロックについて説明しました。次回は各ブロックの仕様についてまとめます。


前回 QR コードの作画 次回


0 件のコメント:

コメントを投稿