PGM (Portable Gray Map)

 PGMはPortable Gray Mapの略称です。PGMには「アスキー形式」と「バイナリー形式」の2種類があります。データがアスキー形式化バイナリー形式化を区別する場合はヘッダーの先頭2バイト(マジックナンバー)で判別します。画像データ本体がアスキー形式の場合、数値はセパレーター($13, $09, $20)で区切られます。
 横幅と縦幅、最大輝度などのヘッダー情報はバイナリーではなく文字列となっています。ヘッダーの先頭の文字が#(シャープ)の場合、改行コード($0A)まで「コメント」とみなされます。

 PGMは「最大輝度」を指定することにより4ビット、8ビットグレー画像だけでなく16ビットグレー画像などにも対応できるようになっています。

■アスキー形式
ヘッダー
2バイトP2
1バイト 改行コード
不定横幅を示すアスキー文字列
不定セパレーター
不定縦幅を示すアスキー文字列
1バイト 改行コード
不定最大輝度を示すアスキー文字列
1バイト改行コード
データ
不定輝度を示す数値(アスキー文字列)
不定セパレーター
不定輝度を示す数値(アスキー文字列)
不定セパレーター
不定:



■バイナリ形式
ヘッダー
2バイトP5
1バイト改行コード
不定横幅を示すアスキー文字列
不定セパレーター
不定縦幅を示すアスキー文字列
1バイト改行コード
不定最大輝度を示すアスキー文字列
1バイト改行コード
データ
不定輝度を示す値(バイナリ)
不定:
不定輝度を示す値(バイナリ)
不定: