PPM (Portable Pixel Map)

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

 PPMは「最大輝度」を指定することにより24ビットフルカラー画像だけでなく48ビットカラーなどにも対応できるようになっています。

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



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