XBM

X BitMap
XBMファイルの例
拡張子.xbm
MIMEタイプimage/x‑xbitmap, image/x‑xbm(非公式)
種別画像ファイルフォーマット
派生元C言語
拡張XPM

XBM(X BitMap)は、X Window SystemGUIにおいてカーソルアイコンに使用するビットマップ画像を格納するための、プレーンテキストによる二値画像ファイルフォーマットである[1]。1989年に登場したX11以降、XBMはXPMに置き換えられた[2]

データ形式

他の画像ファイルに対するXBMファイルの明確な特徴として、C言語のソースコードの文法を流用している点が挙げられる。これによって、前処理を経ずに直接アプリケーションに埋め込んでコンパイルすることが可能であるが、一方で元のピクセルデータよりもファイルの大きさは著しく増大する。1バイトの画像情報を表現するのに複数のASCII文字が使われるために、画像データは'0x13'のようにC言語の16進記数法で記述されたバイト値を、コンマで区切ったリストとして符号化される[3]

XBMのデータは、白黒のピクセルデータを持つ一連のstatic unsigned char型の配列で構成される。このフォーマットが広く使われていた時期には、ひとつのヘッダ(.hファイル)ごとに単一の配列として画像を格納する形が一般的にみられた。以下はXBMをCソースコード内に記述した例である。

#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つでは(もしあるとすれば)ビットマップ内の「ホットスポット」(カーソルを指したときに反応する位置、一般的には0,0)の位置が指定される。

XBMの画像データは、静的配列に格納された1行のピクセル値で構成される。1ビットがそれぞれのピクセル(0が白で1が黒)に対応するため、配列内では1バイトあたり8ピクセルの情報を持ち、画像内の左上端のピクセルは配列内の最初の1バイトの低位ビットで表される。画像の幅が8の倍数でない場合には、それぞれの行の最後の1バイト内の余分なビットは読み飛ばされる。

サポート

World Wide Webの黎明期において、XBMがプロプライエタリではない最小の画像フォーマットだった名残りとして、いくつかのウェブブラウザではXBM画像の表示がサポートされている。Arena(英語版)ではバージョン0.3.34(1997年7月リリース)から完全にサポートされている[4]Internet Explorer 6Mozilla Firefox 3.6[5]、それにWebKitベースのウェブブラウザ[6]ではXBMサポートは削除されている。Chromiumでは(Google Chromeもまた同様に)XBMがサポートされていない可能性が非常に高い[7]Operaのバージョン2.12および6.0のドキュメントによれば、少なくともXBMが以前にはサポートされていたと示唆されている[8][9]

XnViewFFmpegIrfanViewなど、いくつかの画像ビューアや変換ソフトウェアではXBMがサポートされている。48x48ピクセルのXBMは、NetpbmによってIkonX-Faceに変換できる[10]

XPMに置き換えられたにもかかわらず、現代的であっても軽量なウィンドウマネージャでは未だにXBMが活用されており、Openboxではウィンドウのタイトルバー上に表示される、アイコン化・最小化・復帰・最大化などの簡素なボタンの画像に使われている[11]。さらに、組み込みコンピュータ(マイクロコントローラ)のGUIでアイコンを表示するためにもXBMが使われている[12]ImageMagickではXBMの他フォーマットからの、または他フォーマットへの変換がサポートされている[13]GIMPはXBMを作成・加工するために利用でき、他フォーマットからの、または他フォーマットへの変換もサポートされている。

脚注

[脚注の使い方]
  1. ^ Steve Kinzler (2005年). “Picons Archive”. 2014年1月6日閲覧。 “picons are in either monochrome XBM format or color XPM and GIF formats”
  2. ^ Daniel Dardailler (1996年7月15日). “The XPM Story”. 2014年1月2日時点のオリジナルよりアーカイブ。2014年1月1日閲覧。
  3. ^ “Encyclopedia of Graphics File Formats, Second Edition”. O'Reilly (1996年4月). 2014年2月27日閲覧。
  4. ^ QingLong, Lu (1998年3月24日). “Arena change history”. Yggdrasil Computing. 2003年2月28日時点のオリジナルよりアーカイブ。2014年2月27日閲覧。
  5. ^ “504822 – Remove XBM support from Mozilla”. Mozilla (2010年7月12日). 2014年10月22日閲覧。
  6. ^ “Bug 27823 – Remove XBM support”. WebKit (2010年1月12日). 2014年10月22日閲覧。
  7. ^ “Issue 372898 - chromium - Chrome displays broken image icon when given direct link to XBM image. - An open-source project to help move the web forward. - Google Project Hosting”. Google (2014年6月26日). 2014年12月21日時点のオリジナルよりアーカイブ。2014年10月22日閲覧。
  8. ^ “Opera Software ASA - Opera version history”. Opera Software (2013年2月5日). 2014年10月23日時点のオリジナルよりアーカイブ。2014年10月22日閲覧。
  9. ^ “Changelog for Opera 6.0 for Unix TP 1”. Opera Software (2001年11月26日). 2014年10月23日時点のオリジナルよりアーカイブ。2014年10月22日閲覧。
  10. ^ Jeff Dairiki. “Online X-Face Converter”. 2014年3月2日閲覧。
  11. ^ various contributors. “Openbox Theme Documentation”. 2014年10月8日閲覧。
  12. ^ olikraus. “U8g2 library reference”. 2017年5月22日閲覧。
  13. ^ Aseem Kishore. “Convert Images Between Formats via the Command Line in Ubuntu”. 2017年5月22日閲覧。

関連項目

  • 対応ブラウザ(英語版)
    • SVG(英語版)
ラスターイメージ
  • ANI
  • ANIM(英語版)
  • APNG
  • ART
  • AVIF
  • BEF
  • BMF
  • BMP
  • BPG
  • BSAVE
  • CAL
  • CGM
  • CIN
  • CPC
  • DPX
  • ECW
  • EXR
  • FITS
  • FLIC
  • FPX
  • GIF
  • HDRi
  • HEIF
  • ICER
  • ICNS
  • ICO
  • ICS
  • IGES
  • ILBM
  • JBIG
  • JBIG2
  • JNG
  • JPEG
  • JPEG 2000
  • JPEG-LS
  • JPEG-HDR
  • JPEG XL
  • JPEG XR
  • MNG
  • MIFF
  • PBM
  • PCX
  • PGF
  • PGM
  • PICT
  • PICtor
  • Pixel
  • PNG
  • PPM
  • PSP
  • QOI
  • RAD
  • RGBE
  • SGI
  • TGA
  • TIFF
    • Logluv TIFF
  • WBMP
  • WebP
  • XAR
  • XBM
  • XCF
  • XPM
  • RAW画像
    ベクターイメージ
    複合フォーマット
    関連項目