在C中裁剪.ppm文件

时间:2011-03-07 15:16:28

标签: c file-io scanf crop ppm

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

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

r g b r g b r g b r g b r g b r g b
r g b r g b r g b r g b r g b r g b
r g b r g b r g b r g b r g b r g b
r g b r g b r g b r g b r g b r g b

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

2 个答案:

答案 0 :(得分:5)

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

如果你想得到更多的幻想:找出每行开头的字节偏移量,寻找它,然后读入整行。

答案 1 :(得分:0)

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

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