我正在开发一个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()做到这一点?
答案 0 :(得分:5)
一种简单的方法是在读取文件时简单地跟踪像素坐标。如果您当前在裁剪矩形中,则存储像素;否则,跳过它。
如果你想得到更多的幻想:找出每行开头的字节偏移量,寻找它,然后读入整行。
答案 1 :(得分:0)
警告,某些pnm文件处于二进制模式(它们在文件内容开头的幻数不同)。
也许查找pnmcrop的来源会有帮助吗?