我正在开发一个C程序,该程序从起点像素(x,y)(裁剪图像的左上角)到终点像素(x + w,x + h)(左下角)裁剪.ppm文件裁剪图像)。
.ppm 文件中的数据格式如下:
rgbrgbrgbrgbrgbrgb
rgbrgbrgbrgbrgbrgb
rgbrgbrgbrgbrgbrgb
rgbrgbrgbrgbrgbrgb
有没有一种简单的方法,可以避免使用二维数组,使用 scanf() 来做到这一点?
一种简单的方法是在读取文件时简单地跟踪像素坐标。如果您当前位于裁剪矩形中,请存储像素;否则,跳过它。
如果您想更花哨:找出每行开头的字节偏移量,寻找它,然后读入整行。
警告,一些 pnm 文件处于二进制模式(它们在文件内容的开头因幻数而不同)。
也许查找pnmcrop的来源会有所帮助?