Обрезка.ppm файла в C
Я работаю над программой на C, которая обрезает файлы.ppm от пикселя начальной точки (x,y) (левый верхний угол обрезанного изображения) до пикселя конечной точки (x+w,x+h)(нижний левый угол обрезанное изображение).
Данные в файлах.ppm имеют следующий формат:
rgbrgbrgbrgbrgbrgb
rgbrgbrgbrgbrgbrgb
rgbrgbrgbrgbrgbrgb
rgbrgbrgbrgbrgbrgb
Есть ли простой способ избежать использования двумерных массивов, чтобы сделать это с помощью scanf()?
2 ответа
Одним простым способом было бы просто отслеживать координаты вашего пикселя, когда вы читаете файл. Если вы в данный момент находитесь в прямоугольнике кадрирования, сохраните пиксель; в противном случае пропустите это.
Если вы хотите получить больше фантазий: определите смещение байтов для начала каждой строки, найдите его, затем прочитайте всю строку.
Внимание, некоторые файлы pnm находятся в двоичном режиме (они отличаются магическим числом в начале содержимого файла).
Может быть, поиск источников pnmcrop поможет?