作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我无法弄清楚如何将 ppm 文件读入标准输入,将像素存储在 C 中的 new_pix 二维数组中。我真的不知道如何开始。提前致谢!
最佳答案
我假设您可以从文件中获取图像的尺寸(将它们称为W
和H
)。如果没有,请阅读 wikipedia 中的格式。
现在,您需要为想要创建的二维数组分配内存。您将需要一个 char **buf
(假设为 8 位灰度)。对于 32/64 位图像,您可以使用 long
或 long long
。
接下来为指针分配空间,您将在其中存储图像的行。
buf=(char**)malloc(sizeof(char*)*H);
接下来,您需要为每一行分配空间并从标准输入中读取它(您可以在循环中使用 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 限制为正常值。
关于c - 如何将 PPM 文件读入标准输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33810819/
我是一名优秀的程序员,十分优秀!