XBMファイルフォーマット:X Window Systemにおけるビットマップ画像
XBM(X BitMap)ファイルフォーマットは、X Window SystemというGUIシステムにおいて、
カーソルや
アイコンなどの
ビットマップ画像を格納するために使用されていたプレーンテキスト形式のファイルです。1989年に登場したX11以降は、より効率的なXPMフォーマットに取って代わられていますが、現在でも一部のシステムで利用されています。
XBMファイルの特徴
XBMファイルの大きな特徴として、
C言語のソースコードに直接記述できるという点が挙げられます。そのため、前処理なしでアプリケーションに組み込み、コンパイルすることが可能でした。しかし、この方法では画像データの表現に多くのASCII文字を使用するため、元の画像データよりもファイルサイズが著しく大きくなってしまうという欠点がありました。
具体的には、1バイトの画像情報は複数のASCII文字で表現されます。画像データは、
C言語の16進記数法(例:'0x13')で記述されたバイト値をコンマで区切ったリストとして符号化されます。データは、白黒の
ピクセルデータを持つ`static unsigned char`型の配列として構成され、1
ビットが1
ピクセルに対応します(0が白、1が黒)。1バイトで8
ピクセルの情報が表現され、画像の左上端の
ピクセルは配列の先頭のバイトの低位
ビットで表されます。画像の幅が8の倍数でない場合は、行末の余分な
ビットは無視されます。
XBMファイルの構造
一般的な画像ファイルフォーマットとは異なり、XBMファイルにはヘッダとして2つまたは4つの`#define`指示文が記述されています。最初の2つは画像の縦横の
ピクセル数を、残りの2つは(存在する場合)
ビットマップ内のホットスポット(
カーソルが反応する位置、通常は(0,0))の位置を指定します。画像データは、1行の
ピクセル値を格納した静的配列として表現されます。
XBMのサポート状況
World Wide Web黎明期には、プロプライエタリでない最小限の画像フォーマットとしてXBMが使用されていました。そのため、一部の古いウェブブラウザではXBMの表示がサポートされていました。しかし、現代の主要なウェブブラウザ(例:Chrome、Firefox、Internet Explorer)ではサポートされていません。
一方で、XnView、FFmpeg、IrfanViewなどの画像ビューアや変換ソフトウェア、
ImageMagickや
GIMPなどの画像編集ソフトウェアでは、XBMのサポートが継続されています。また、軽量なウィンドウマネージャ(例:Openbox)や組み込みシステムにおいても、
アイコン表示などに使用されている場合があります。
XBMの現状
XPMフォーマットに取って代わられて以降、XBMの使用頻度は著しく減少しました。しかし、その簡素さや、
C言語ソースコードへの直接埋め込みという特徴から、特定の用途では未だに利用されています。特に、リソースの限られた組み込みシステムや、軽量さを重視するアプリケーションでは、XBMが有効な選択肢となり得ます。そのコンパクトさと、歴史的背景から、今後もニッチな用途での利用は続く可能性があります。
まとめ
XBMは、X Window Systemの歴史の中で重要な役割を果たした
ビットマップ画像フォーマットです。その単純な構造と
C言語との親和性によって、特定の用途においては未だに有用なフォーマットと言えます。しかし、ファイルサイズの問題や、現代的な画像フォーマットとの互換性の低さから、主流の地位からは退いています。