Преобразование ppm файла в ASCII art - вычисление в градациях серого
Я пишу программу, которая конвертирует 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)