PPM(Portable Pix Map)とは画像フォーマットの一種でX Window Systemなどで良く使われるものである。
とりあえず、この画像フォーマットで画像ファイルを作っておけば、
画像フォーマット変換コマンドを使用して好きなフォーマットに変換してやることができる。
PPMは構造が簡単でプログラムで扱いやすいので、自作プログラムなどで画像データをファイルに
出力したい人のために、その作り方を説明してみよう。
簡単な例として、解像度が 100 x 100 で真っ白なPPMファイルを出力するプログラム(make_ppm.c)を以下にあげてみる。
他のプログラムに応用する場合は、以下のプログラムの解像度・RGBの値(r, g, b)を変えてやれば良い。
void
main()
{
int x, y;
unsigned char r, g, b;
/* ここから3行はヘッダーの部分 */
printf( "P6\n"); /* マジックナンバー */
printf( "100 100\n"); /* X, Y方向の解像度 */
printf( "255\n"); /* 各色の最大値 */
for(y = 0; y < 100; y++)
{
for(x = 0; x < 100; x++)
{
r = 255; /* 赤成分 ( 0 〜 255 ) */
g = 255; /* 緑成分 ( 0 〜 255 ) */
b = 255; /* 青成分 ( 0 〜 255 ) */
printf( "%c%c%c", r, g, b);
}
}
}
以下のようにコンパイルして実行するとtmp.ppmが真っ白の画像ファイルになる。
# cc make_ppm.c # a.out > tmp.ppm