画像ファイル(PPM)の作り方

PPMファイルとは

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

参考


Home | Contents
Mail