我无法弄清楚如何将ppm文件读入标准输入,将像素存储在C中的new_pix的二维数组中 . 我真的不知道如何启动它 . 提前致谢!
我假设您可以从文件中获取图像的尺寸(称为 W 和 H ) . 如果没有,请阅读wikipedia的格式
W
H
现在,您需要为要进行的2d阵列分配内存 . 您将需要 char **buf (假设为8位灰度 . 您可以使用 long 或 long long 表示32/64位图像 .
char **buf
long
long long
接下来,为存储图像行的指针分配空间 .
buf=(char**)malloc(sizeof(char*)*H);
接下来,您需要为每一行分配空间并从stdin读取它(您可以在循环中使用 scanf ) .
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限制为合理的值 .
1 回答
我假设您可以从文件中获取图像的尺寸(称为
W
和H
) . 如果没有,请阅读wikipedia的格式现在,您需要为要进行的2d阵列分配内存 . 您将需要
char **buf
(假设为8位灰度 . 您可以使用long
或long long
表示32/64位图像 .接下来,为存储图像行的指针分配空间 .
接下来,您需要为每一行分配空间并从stdin读取它(您可以在循环中使用
scanf
) .你完成了!请注意,如果您计划分发代码,则必须对malloc返回值进行检查并将W和H限制为合理的值 .