我正在编写一个程序,可以根据灰度将ppm文件转换为ASCII艺术。我有以下代码来转换图像:
while(fscanf(input, "%d%d%d", &red, &green, &blue)!=EOF){
int grayscale;
grayscale = (red + green +blue)/3;
char c = convert_image_method(grayscale);
fprintf(output, "%c", c);
}
如果我逐个处理文件中的每个像素,这将有效。但是,如果我必须处理更大的像素块,如2 * 2或3 * 3,该怎么办?并使用convert_image_method
将更大的像素块转换为一个字符?我应该如何更改代码,以便它适用于这两种情况? (我还读取了图像的宽度和高度以及我应该转换ppm文件的像素块的大小)