如何将PPM文件读入标准输入

时间:2015-11-19 17:44:27

标签: c multidimensional-array ppm

我无法弄清楚如何将ppm文件读入标准输入,将像素存储在C中new_pix的二维数组中。我真的不知道如何获取它开始。提前谢谢!

1 个答案:

答案 0 :(得分:1)

我假设你可以从文件中获取图像的尺寸(称为WH)。如果没有,请阅读wikipedia

中的格式

现在,您需要为要制作的2d阵列分配内存。您需要char **buf(假设为8位灰度。您可以使用longlong 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限制为合理的值。