ppmについて
縦120横160のppm方式の画像sample01.ppmを改めてout.ppmとして出力するプログラム、
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef unsigned char uchar;
typedef struct _rgb_ {
uchar r, g, b;
} RGB;
#define WIDTH 160
#define HEIGHT 120
int main(int argc, char **argv)
{
char s[16];
int i, j;
RGB image[HEIGHT][WIDTH];
FILE *fp;
fp = fopen("sample01.ppm", "r");
fgets(s, 16, fp);
fgets(s, 16, fp);
fgets(s, 16, fp);
for(j = 0; j < HEIGHT; j++){
for(i = 0; i < WIDTH; i++){
image[j][i].r = (uchar)getc(fp);
image[j][i].g = (uchar)getc(fp);
image[j][i].b = (uchar)getc(fp);
}
}
fclose(fp);
fp = fopen("out.ppm", "w");
fprintf(fp, "P6\n");
fprintf(fp, "%d %d\n", WIDTH, HEIGHT);
fprintf(fp, "255\n");
for(j = 0; j < HEIGHT; j++){
for(i = 0; i < WIDTH; i++){
(void)putc(image[j][i].r, fp);
(void)putc(image[j][i].g, fp);
(void)putc(image[j][i].b, fp);
}
}
fclose(fp);
return(EXIT_SUCCESS);
}
を学校のPCでコンパイルし、実行した時は普通に表示されたのですが、いざ家に持ち帰り、コンパイルし、実行したところ、画像が最初の方で途中できれてしまいます。
学校のコンパイラーはよくわからないのですが、
gcc xx.c
のコマンドでコンパイルします。unix
自宅のPCはWINDOWS XPで、コンパイラはborland を使っています 。
bcc32 xx.c
とコマンドするやつです。
どうすれば正常に表示されるのでしょうか、助けてください。