[1.2] 例として次のプログラムを授業で扱いました
#include <stdio.h>
#define WIDTH 320 //画像の横のサイズ
#define HEIGHT 240 //画像の縦のサイズ
int main(){
unsigned char pixels[WIDTH*HEIGHT*3];
int i, j;
FILE *fp;
//全ピクセルを単一色に塗りつぶす
for(j=0; j<HEIGHT; j++){
for(i=0; i<WIDTH; i++){
pixels[(j * WIDTH + i) * 3] = 100;
pixels[(j * WIDTH + i) * 3 + 1] = 155;
pixels[(j * WIDTH + i) * 3 + 2] = 255;
}
}
for(j=0; j<HEIGHT; j++){
pixels[(j * WIDTH + j) * 3] = 0;
pixels[(j * WIDTH + j) * 3 + 1] = 0;
pixels[(j * WIDTH + j) * 3 + 2] = 0;
pixels[(j * WIDTH + (HEIGHT-j+1)) * 3] = 0;
pixels[(j * WIDTH + (HEIGHT-j+1)) * 3 + 1] = 0;
pixels[(j * WIDTH + (HEIGHT-j+1)) * 3 + 2] = 0;
}
//ppm形式で画像を書き出す
fp = fopen("hoge01.ppm", "wb"); //ファイルをバイナリーモードでオープン
if(fp != NULL){
fprintf(fp, "P6¥n%d %d¥n255¥n", WIDTH, HEIGHT); //マジックナンバー,幅,高さを書き出す
fwrite(pixels, 1, WIDTH * HEIGHT * 3, fp); //画像データを書き出す
fclose(fp);
}
return 0;
}
[2] 環境
[2.1] OS : Linux
[2.2] コンパイラ名 :gcc (ファイル名) -o (ファイル名)
[3] その他
・C言語に関してポインタや配列も理解できていない素人です…提出期限が7月9日で、プログラミングに関して頼れる知り合いもいないのでアドバイスを頂けると嬉しいです。