XBM
他の画像ファイルに対するXBMファイルの明確な特徴として、C言語のソースコードの文法を流用している点が挙げられる。これによって、前処理を経ずに直接アプリケーションに埋め込んでコンパイルすることが可能であるが、一方で元のピクセルデータよりもファイルの大きさは著しく増大する。1バイトの画像情報を表現するのに複数のASCII文字が使われるために、画像データは'0x13'のようにC言語の16進記数法で記述されたバイト値を、コンマで区切ったリストとして符号化される。
XBMのデータは、白黒のピクセルデータを持つ一連のstatic unsigned char型の配列で構成される。このフォーマットが広く使われていた時期には、ひとつのヘッダ(.hファイル)ごとに単一の配列として画像を格納する形が一般的にみられた。以下はXBMをCソースコード内に記述した例である。
通常の画像フォーマットのヘッダの代わりに、XBMでは2つないしは4つの#define指示文が置かれる。先頭の2つの#defineでは画像の縦と横のピクセル数が指定される。残りの2つでは(もしあるとすれば)ビットマップ内の「ホットスポット」(カーソルを指したときに反応する位置、一般的には0,0)の位置が指定される。
XBMの画像データは、静的配列に格納された1行のピクセル値で構成される。1ビットがそれぞれのピクセル(0が白で1が黒)に対応するため、配列内では1バイトあたり8ピクセルの情報を持ち、画像内の左上端のピクセルは配列内の最初の1バイトの低位ビットで表される。画像の幅が8の倍数でない場合には、それぞれの行の最後の1バイト内の余分なビットは読み飛ばされる。