Обрезка.ppm файла в C

Я работаю над программой на C, которая обрезает файлы.ppm от пикселя начальной точки (x,y) (левый верхний угол обрезанного изображения) до пикселя конечной точки (x+w,x+h)(нижний левый угол обрезанное изображение).

Данные в файлах.ppm имеют следующий формат:

rgbrgbrgbrgbrgbrgb
rgbrgbrgbrgbrgbrgb
rgbrgbrgbrgbrgbrgb
rgbrgbrgbrgbrgbrgb

Есть ли простой способ избежать использования двумерных массивов, чтобы сделать это с помощью scanf()?

2 ответа

Решение

Одним простым способом было бы просто отслеживать координаты вашего пикселя, когда вы читаете файл. Если вы в данный момент находитесь в прямоугольнике кадрирования, сохраните пиксель; в противном случае пропустите это.

Если вы хотите получить больше фантазий: определите смещение байтов для начала каждой строки, найдите его, затем прочитайте всю строку.

Внимание, некоторые файлы pnm находятся в двоичном режиме (они отличаются магическим числом в начале содержимого файла).

Может быть, поиск источников pnmcrop поможет?

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