コンパイラ:gcc
言語:C
コマンドラインからシェルスクリプトで実行しています。
今現在、画像処理プログラミングの練習として、画像を半分に切り抜くという課題を行っています。
右半分を切り出す課題に挑戦してみたのですが、どれも正常な画像が出力されず、このようになってしまいました。
(画像の下のほうがくろくなっているのはコマンドラインでppm形式をjpeg形式に変換しようとしたところなぜかできてしまいました)
(コマンドは: cjpeg ./デスクトップ/lake_right.ppm > ./デスクトップ/lake_right.jpeg )
本題なのですが、下のとおり手順を進めました。
①コンパイル 結果 cutimage_right というオブジェクトコードファイルが生成されました。
ソースはこの通りです。
# include <stdio.h>
# define XL 800
# define YL 600
# define BPP 3
int main()
{
short x,y;
unsigned char data[BPP];
for(y=0; y<YL; y++) //y軸 巡回
{
for(x=0;x<XL; x++) //x軸 巡回
{
fread(data, BPP, 1, stdin); //標準入力から読み込み
if(x>XL/2) fwrite(data, BPP, 1, stdout); //
}
}
}
ファイル名: lake_right.ppm
内容: そして lake_right.ppm ファイルを開いて見たところ、ねじれるような描画の画像になってしまっていました。
この課題の見本のプログラムでは、出力部分の条件 これは以下のとおりでした。 xがX軸最大値であるXLの半分未満である間という条件で左半分が出力できたので
xがX軸最大値であるXLの半分より大きい間という条件で右半分が出力されないかと思ったのですが、されませんでした。
原因が分からず困っております。
ご教示お願いいたします。