PGM

PGMとは?

Portable GrayMapの略で、白黒画像のフォーマットです。

PGMの定義

バイナリ形式

PGMの画像は以下の項目で構成されています。

マジックナンバー
ファイルのタイプを識別するためのものです。"P5"の二文字です。
スペース
空白, TAB, CR, LFのいずれかです。
画像の幅
ASCII型式の数字で指定します。(簡単に言うと、前角数字とかはダメって事です)
スペース
画像の高さ
ASCII型式の数字。
スペース
白黒の色数
65536以下でASCII型式の数字。
改行かスペース
画像の中味を2進数の数字で表記
横 * 縦 の順番に左から数字を指定する。 数字は0から上で指定した色数の範囲内で指定する。(スペースを空ける必要は無い) 0は黒色を表し、上で指定した色数の値は白色を表す。 数字は、上で指定した色数の値が256よりも小さければ1バイトで、 そうでなければ2バイトの2進数で表記する。
コメント
#で始まる行は行末までコメントとして扱われる。

プレーン型式

今の説明はバイナリ形式のものでした。 つまり、数値の指定に2進数を使わなければならない部分があると言うことです。 使われているのは希であるが、10進数で指定できるタイプのフォーマットもあります。 以下に、バイナリ形式との相異点を説明します。

マジックナンバーは"P2"
白黒の色数で指定できる最大値の上限が無くなる
65536以上の値も指定できます。
画像の中味の数字を2進数でなく、10進数で表記できます。
指定できる数値の上限もありません。各々の数値はスペースで区切って指定します。
一行は70文字以下

サンプル

P2
# feep.pgm
24 7
15
0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
0  3  3  3  3  0  0  7  7  7  7  0  0 11 11 11 11  0  0 15 15 15 15  0
0  3  0  0  0  0  0  7  0  0  0  0  0 11  0  0  0  0  0 15  0  0 15  0
0  3  3  3  0  0  0  7  7  7  0  0  0 11 11 11  0  0  0 15 15 15 15  0
0  3  0  0  0  0  0  7  0  0  0  0  0 11  0  0  0  0  0 15  0  0  0  0
0  3  0  0  0  0  0  7  7  7  7  0  0 11 11 11 11  0  0 15  0  0  0  0
0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0

PGM型式をサポートするプログラムを作るなら

これはPGM型式っぽくない?と思えるようなものでも処理できるように、 できるだけ柔軟に作りましょう。

参考文献

http://unixhelp.ed.ac.uk/CGI/man-cgi?pgm+5


             


アンケート

この説明は
役に立ったし、わかりやすい
役に立ったけど、わかりにくい
私の求めていたものじゃない

意見、感想、間違い指摘などがあれば下にどうぞ。