Преобразование 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)

0 ответов

Другие вопросы по тегам