Adobe のビットマップ配布フォーマット(BDF)のグレイマップ(アンチエイリアス)フォントへの拡張

# Adobe の BDF のグレイマップフォントへの拡張

Adobe はビットマップフォントを配布するための、BDF と呼ばれるフォーマットを定義しています。Microsoft はこのフォーマットを、グレイマップ (アンチエイリアス。各ピクセルが白と黒だけでなく、多数の灰色の中間調を表す) フォントをサポートするために拡張しています。最近、この同じフォーマットが他でも (xmbdfed, freetype および fontforge) で使われ始めています。

フォーマット記述のセクション 3.1 で Adobe は“SIZE”キーワードを定義しています。Microsoft はこのキーワードに付加的な 4 番目のパラメータを追加しました。
`SIZE PointSize XRes YRes [Bits_Per_Pixel]`
この 4 番目のパラメータは 1, 2, 4 および 8 の値を取ることができます。省略した場合は、この値は 1 であると見なされます (FontForge は値 16 および 32 のフォントからも読み込むことができますが、下位のデータは単純に無視され、上位バイトのみを保持します)。

FontForge はまた、フォント属性
`BITS_PER_PIXEL Value`
を、生成するすべてのグレイマップフォントに含めます。

FontForge はこの種のフォントをすべて BDF 規格のバージョン 2.3 として印づけます。
`STARTFONT 2.3`

ビットマップデータは BITS_PER_PIXEL の値が 1, 2, 4 または 8 のいずれであるかに従って、8, 4, 2 または 1 ピクセル分をパックした形式で格納されます。Adobe の仕様書にあるように、すべてのデータは 16 進数で表現され、偶数個のニブルが存在しなければなりません。

例:
`BITMAP
C8
ENDCHAR`
はピクセル列

Bits/Pixel | Pixels
--- | ---
1 | 1,1,0,0,1,0,0,0
2 | 3,0,2,0
4 | C,8
8 | C8

を表します。