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

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

2 голосов
/ 07 марта 2011

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

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

р г б р г б р г б р г б р г б р г б
р г б р г б г б р г б р г б р г б
р г б р г б р г б р г б р г б р г б
р г б р г б р г б р г б р г б р г б

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

Ответы [ 2 ]

5 голосов
/ 07 марта 2011

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

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

0 голосов
/ 07 марта 2011

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

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

...