我无法弄清楚如何将ppm文件读入标准输入,将像素存储在C中new_pix的二维数组中。我真的不知道如何获取它开始。提前谢谢!
答案 0 :(得分:1)
我假设你可以从文件中获取图像的尺寸(称为W
和H
)。如果没有,请阅读wikipedia
现在,您需要为要制作的2d阵列分配内存。您需要char **buf
(假设为8位灰度。您可以使用long
或long long
来获取32/64位图像。
接下来为指针放置图像行的空间。
buf=(char**)malloc(sizeof(char*)*H);
接下来,您需要为每一行分配空间并从stdin中读取它(您可以在循环中使用scanf
)。
for(int y=0;y<H;y++){
buf[y]=(char*)malloc(sizeof(char)*W);
for(int x=0;x<W;x++)
scanf("%d",&buff[y][x]);
}
你完成了!请注意,如果您计划分发代码,则必须对malloc返回值进行检查并将W和H限制为合理的值。