私は画像ファイルを読み取って、各バイトにそのピクセルレベルを絶対係数でスケーリングすることによってスケーリングしようとしています。私はそれを正しくやっているかどうかはわかりませんが-
void scale_file(char *infile, char *outfile, float scale)
{
// open files for reading
FILE *infile_p = fopen(infile, 'r');
FILE *outfile_p = fopen(outfile, 'w');
// init data holders
char *data;
char *scaled_data;
// read each byte, scale and write back
while ( fread(&data, 1, 1, infile_p) != EOF )
{
*scaled_data = (*data) * scale;
fwrite(&scaled_data, 1, 1, outfile);
}
// close files
fclose(infile_p);
fclose(outfile_p);
}
私が得たのは、各バイトの乗算を行う方法です(スケールは0〜1.0フロートです)-私はそれを間違って読んでいるか、何か大きなものを見逃していると確信しています。また、データは符号なし(0〜255)であると見なされます。私の貧弱なコードを判断しないでください:)
ありがとう