我正在尝试读取图像文件并通过将每个字节乘以其像素级别乘以某个绝对因子来缩放它。我不确定我做对了,不过-
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)。请不要评判我糟糕的代码:)
谢谢