XBMとは - わかりやすく解説 Weblio辞書 (original) (raw)

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によって_Ikon_やX-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 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 XR MNG MIFF PBM PCX PGF PGM PICT PICtor Pixel PNG PPM PSP RAD RGBE SGI TGA TIFF Logluv TIFF WBMP WebP XAR XBM XCF XPM
RAW画像 CIFF DNG
ベクターイメージ AI(英語版 CDR CGM DXF EVA(英語版 EMF Gerber HVIF(英語版IGES PGML(英語版 SVG VML WMF Xar(英語版
複合フォーマット CDF DjVu EPS PDF PICT PostScript PSD SWF XAML
関連項目 Exchangeable image file format (EXIF) Extensible Metadata Platform (XMP)
カテゴリ 比較