テキストファイルでビットマップ画像を作成 X BitMap(XBM)フォーマット
Wikipedia - X BitMap
http://en.wikipedia.org/wiki/X_BitMap
「X BitMap(XBM)」というビットマップ画像のフォーマットを最近知った。
テキストエディタで次のように書く。
#define test_width 16
#define test_height 7
static char test_bits[] = {
0x13, 0x00, 0x15, 0x00, 0x93, 0xcd, 0x55, 0xa5, 0x93, 0xc5, 0x00, 0x80,
0x00, 0x60 };
これを拡張子「.xbm」のテキストファイルとして保存するだけで、次のようなビットマップ画像(幅16ピクセル、高さ7ピクセル)になるのだ。
{{Blarg.xbm.png}}
Firefoxでは、これをそのまま画像として表示できる。これには驚いた。
ちなみに上のテキストファイルの内容は、
・幅16ピクセル、高さ7ピクセルという画像サイズを最初に指定
・16×7=112ピクセルのそれぞれについて、黒か白かのビット(オン・オフ)を決める
・それを8ビット=1バイト(2の8乗)ずつ書く
というふうにできている。「0x13」といったものが「2ケタの16進数(2の4乗)」で、これが14個並んでいるので、
(「2の4乗」×2)×14=「2の112乗」
となり、112ピクセル分のビット(オン・オフ)を指定していることになる。
SVGもそうだが、こういうふうに人間が読めるテキストで「画像を書く」ことができて、その中身がわかるのは面白い。
SVGはベクター形式だが、XBMはビットマップ形式なので、いわば「ドット打ち」をテキストでやっているようなものだ(もっと直接的な表現にPBMというフォーマットがある)。原始的であるゆえにわかりやすく、想像力を刺激される。
関連:
Netpbm format(PPM、PGM、PBM)
http://en.wikipedia.org/wiki/Netpbm_format
関連エントリ:
Firefox 1.5 リリース!SVGネイティブサポートの衝撃!!
http://mojix.org/2005/11/30/120211
http://en.wikipedia.org/wiki/X_BitMap
「X BitMap(XBM)」というビットマップ画像のフォーマットを最近知った。
テキストエディタで次のように書く。
#define test_width 16
#define test_height 7
static char test_bits[] = {
0x13, 0x00, 0x15, 0x00, 0x93, 0xcd, 0x55, 0xa5, 0x93, 0xc5, 0x00, 0x80,
0x00, 0x60 };
これを拡張子「.xbm」のテキストファイルとして保存するだけで、次のようなビットマップ画像(幅16ピクセル、高さ7ピクセル)になるのだ。
{{Blarg.xbm.png}}
Firefoxでは、これをそのまま画像として表示できる。これには驚いた。
ちなみに上のテキストファイルの内容は、
・幅16ピクセル、高さ7ピクセルという画像サイズを最初に指定
・16×7=112ピクセルのそれぞれについて、黒か白かのビット(オン・オフ)を決める
・それを8ビット=1バイト(2の8乗)ずつ書く
というふうにできている。「0x13」といったものが「2ケタの16進数(2の4乗)」で、これが14個並んでいるので、
(「2の4乗」×2)×14=「2の112乗」
となり、112ピクセル分のビット(オン・オフ)を指定していることになる。
SVGもそうだが、こういうふうに人間が読めるテキストで「画像を書く」ことができて、その中身がわかるのは面白い。
SVGはベクター形式だが、XBMはビットマップ形式なので、いわば「ドット打ち」をテキストでやっているようなものだ(もっと直接的な表現にPBMというフォーマットがある)。原始的であるゆえにわかりやすく、想像力を刺激される。
関連:
Netpbm format(PPM、PGM、PBM)
http://en.wikipedia.org/wiki/Netpbm_format
関連エントリ:
Firefox 1.5 リリース!SVGネイティブサポートの衝撃!!
http://mojix.org/2005/11/30/120211