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バイト改行コード
データ
不定赤の輝度を示す値(バイナリ)
不定緑の輝度を示す値(バイナリ)
不定青の輝度を示す値(バイナリ)
不定