gpt4 book ai didi

c++ - 在 C++ 中保存来自二维数组的灰度图像

转载 作者:太空宇宙 更新时间:2023-11-04 13:38:38 26 4
gpt4 key购买 nike

我有一个大小为 320x240 的二维数组,其中包含从 0 到 255 的值。我想将此数据存储为灰度图像。

这是我到目前为止编写的代码:

int val[320][240];
FILE *image = fopen("depth.png","wb");
for (i=0; i < 320; i++)
{
for (j=0; j<240; j++)
{
printf("\nWriting to pixel %d %d in image",i,j);
fwrite(&val[i][j], sizeof(int), sizeof(int),image);
}
}

fclose(image);

但是此代码无法生成正确的图像。请提供更正代码的建议。

最佳答案

您还有其他问题需要担心——比如图像文件的格式。但是,您对以下行的尝试是错误的:

fwrite(&val[i][j], sizeof(int), sizeof(int), image);

如果 sizeof(int) 为 4,它将写入 4 x 4 字节。你需要写一个整数是:

fwrite(&val[i][j], sizeof(int), 1, image);

不仅如此,您还将最终越界访问数组,这将导致未定义的行为。

关于c++ - 在 C++ 中保存来自二维数组的灰度图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28639145/

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