gpt4 book ai didi

c - 用C编写PGM文件不起作用

转载 作者:行者123 更新时间:2023-11-30 14:26:12 25 4
gpt4 key购买 nike

我正在尝试用 C 程序编写 PGM 文件,但是一旦编写完毕,如果我尝试打开它来查看图像,我会被告知无法确定图像文件格式。

但是,如果我在 geany 中创建一个新文件,复制数据,然后将其另存为新的 PGM,它就可以工作。

知道为什么会这样吗?

FILE * grey = fopen("greyscale.pgm", "w");

fprintf(grey, "P2 \r\n%d %d \r\n255 \r\n", width, height);

for (i = 0; i < width; i++) {
for (j = 0; j < height; j++) {
fprintf(grey, "%d ", ((imageArray[i][j].red + imageArray[i][j].green + imageArray[i][j].blue)/3));
}
fprintf(grey, "\r\n");
}

我正在将彩色图像转换为灰度图像。

最佳答案

我认为你不应该使用\r\n作为行分隔符,而只使用\n。另外,请检查所有行的长度是否超过 70 个字符。由于每个像素最多需要 4 个字符(3 个字符加上空格),因此每 17 个像素后插入 \n 。您可以用注释分隔实际行(例如:

pixel11 pixel12 pixel13
pixel14 pixel15
# switch to next row
pixel21 pixel22 pixel23
pixel24 pixel25
# etc.

关于c - 用C编写PGM文件不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9468456/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com