2

我正在开发一个C程序,该程序从起点像素(x,y)(裁剪图像的左上角)到终点像素(x + w,x + h)(左下角)裁剪.ppm文件裁剪图像)。

.ppm 文件中的数据格式如下:

rgbrgbrgbrgbrgbrgb
rgbrgbrgbrgbrgbrgb
rgbrgbrgbrgbrgbrgb
rgbrgbrgbrgbrgbrgb

有没有一种简单的方法,可以避免使用二维数组,使用 scanf() 来做到这一点?

4

2 回答 2

5

一种简单的方法是在读取文件时简单地跟踪像素坐标。如果您当前位于裁剪矩形中,请存储像素;否则,跳过它。

如果您想更花哨:找出每行开头的字节偏移量,寻找它,然后读入整行。

于 2011-03-07T15:18:31.990 回答
0

警告,一些 pnm 文件处于二进制模式(它们在文件内容的开头因幻数而不同)。

也许查找pnmcrop的来源会有所帮助?

于 2011-03-07T17:04:36.420 回答