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

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