コンピュータグラフィックスでは、X Window System は、 X GUIで使用されるカーソルやアイコンのビットマップを保存するために、プレーンテキストのバイナリ画像フォーマットであるX BitMap ( XBM )を使用していました。[ 3 ] XBM フォーマットは、 1989 年にX11で初めて登場したXPMに置き換えられました。 [ 4 ]
XBMファイルは、 Cソースファイルの形式をとるという点で、ほとんどの画像ファイルとは大きく異なります。これは、前処理ステップなしでアプリケーションに直接コンパイルできることを意味しますが、同時に、生のピクセルデータよりもはるかに大きくなります。画像データは、各バイト値がCの16進表記(たとえば「0x13」)で記述された、コンマで区切られたバイト値のリストとしてエンコードされ、複数のASCII文字を使用して1バイトの画像情報を表します。[ 5 ]
XBMデータは、モノクロピクセルデータを含む一連の静的な符号なし文字配列で構成されています。このフォーマットが一般的に使用されていた頃は、XBMは通常、ヘッダーファイル(.hファイル)に格納され、ヘッダーファイルには画像ごとに1つの配列が格納されていました。以下のC言語コードは、右側のパネルに表示されているXBMファイルBlargの例を示しています。
#define test_width 16 #define test_height 7 static unsigned char test_bits [] = { 0x13 , 0x00 , 0x15 , 0x00 , 0x93 , 0xcd , 0x55 , 0xa5 , 0x93 , 0xc5 , 0x00 , 0x80 , 0x00 , 0x60 };通常の画像ファイル形式のヘッダーの代わりに、XBMファイルには2つまたは4つの#defineステートメントがあります。最初の2つの#defineは、ビットマップの高さと幅をピクセル単位で指定します。次の2つの#define(存在する場合)は、ビットマップ内のホットスポットの位置を指定します。(ビットマップカーソルの場合、「ホットスポット」とはカーソル「ポイント」の位置を指し、通常は0,0です。)
XBM画像データは、静的配列に格納されたピクセル値の行で構成されます。各ピクセルは1ビット(白は0、黒は1)で表されるため、配列の各バイトには8ピクセル分の情報が含まれています。ビットマップの左上のピクセルは、配列の最初のバイトの最下位ビットで表されます。画像の幅が8の倍数でない場合、各行の最後のバイトにある余分なビットは無視されます。
一部のウェブ ブラウザは、 XBM が最小限の非独自形式の画像ファイル形式であったワールド ワイド ウェブの初期の頃からの名残として、XBM 画像の表示をサポートしています。Arenaウェブブラウザはバージョン 0.3.34 (1997 年 7 月 25 日) 以降、完全にサポートしていました。[ 6 ] XBM のサポートは、 Internet Explorer 6、Mozilla Firefox 3.6、[ 7 ]およびWebKitベースのブラウザから削除されました。 [ 8 ] Chromium (したがって、Google Chromeも) は XBM をサポートしていないという強い兆候があります。 [ 9 ] Opera 2.12 および 6.0のドキュメントには、少なくとも以前は XBM がサポートされていたことが示されています。[ 10 ] [ 11 ]
XnView 、 FFmpeg、IrfanViewなどの一部の画像ビューア/コンバーターはXBMをサポートしています。[ 12 ] 48×48のXBMはNetpbmツールを使用してIkon、そして最終的にはX-Faceに変換できます。[ 13 ]
XBM はXPMフォーマットに取って代わられたものの、 Openboxのような軽量な最新ウィンドウマネージャでは、ウィンドウのタイトルバーにアイコン化/最小化、復元、最大化ボタンなどのシンプルなボタン画像を定義するために今でも使用されています。[ 14 ]また、XBM は組み込み処理 (マイクロコントローラ) で GUI で使用されるアイコンを表示するためにも使用されています。[ 15 ] ImageMagick [ 16 ]は、XBM との間で画像を変換することをサポートしています。GIMPは、XBM フォーマットを使用して画像を作成または変更するために使用でき、XBM フォーマットとの間で画像を変換することもサポートしています。
ピコンはモノクロのXBM形式、またはカラーのXPMおよびGIF形式のいずれかです。