打印出 ppm 文件的数组时出现问题
Problems printing out an array for a ppm file
我正在尝试使用结构创建一个数组以创建 ppm 文件。然后,我想调用其他函数,以便更改每个单元格的颜色值(rgb)以制作形状。
这是我尝试打印出一个包含三个 rgb 值的数组。
bool writeImage(const Color image[][IMAGE_WIDTH], int height) {
ofstream imgGen;
imgGen.open("imgGen.txt");
imgGen << "P3 n";
imgGen << IMAGE_WIDTH << " " << height << "n";
imgGen << COLOR_SCALE << "n";
for (int imageRow = 0; imageRow < height; imageRow++) {
for (int imageColumn = 0; imageColumn < IMAGE_WIDTH; imageColumn++)
imgGen << image[imageRow][imageColumn].red << " " << image[imageRow]
[imageColumn].green << " " << image[imageRow][imageColumn].blue;
imgGen << endl;
}
imgGen.close();
return 0;
}
这是我尝试用于数组的结构。
struct Color
{
unsigned char red;
unsigned char green;
unsigned char blue;
};
int main()
{
Color image[IMAGE_HEIGHT][IMAGE_WIDTH];
image[IMAGE_HEIGHT][IMAGE_WIDTH].red = 0;
image[IMAGE_HEIGHT][IMAGE_WIDTH].green = 1;
image[IMAGE_HEIGHT][IMAGE_WIDTH].blue = 2;
writeImage(image, IMAGE_HEIGHT);
return 0;
}
我将其打印为文本文件以检查格式,并尝试让它打印出每个像素的三个值,如下所示:
P3
200 300
255
255 0 0 0 0 255
0 255 0 0 0 0
我当前的方法有什么问题,我可以在我的代码中做些什么不同的事情?感谢您的任何帮助!
行
image[IMAGE_HEIGHT][IMAGE_WIDTH].red = 0;
image[IMAGE_HEIGHT][IMAGE_WIDTH].green = 1;
image[IMAGE_HEIGHT][IMAGE_WIDTH].blue = 2;
在两个方面是错误的。
- 它们使用越界索引访问数组,因此会导致未定义的行为。
- 它们使数组的内容仍处于未初始化状态。
您需要逐个设置数组元素的值,就像访问它们以打印它们一样。
for (int imageRow = 0; imageRow < IMAGE_HEIGHT; imageRow++)
{
for (int imageColumn = 0; imageColumn < IMAGE_WIDTH; imageColumn++)
{
image[imageRow][imageColumn].red = 0;
image[imageRow][imageColumn].green = 1;
image[imageRow][imageColumn].blue = 2;
}
}
相关文章:
- cpp二进制搜索问题,计算给定数组中输入元素的出现次数
- 输入std::数组时出现问题
- 类对象数组的问题会导致崩溃
- 传递二维数组时出现问题
- 从 C++ 中的函数返回数组地址问题
- 使用数组时出现问题
- 打印问题.我在数组中打印值时遇到一些问题
- C++:__aligned(__alignof__) 导致字符数组数据出现问题?
- 将字节数组转换为带有字节序问题的指针
- C++ 填充数组时遇到问题
- 遇到此问题时遇到困难:允许用户输入数组的值并使用 for,而循环也输出输入的最大数字
- 这是使用回溯的 nqueen 问题,但我使用了动态 2d 数组,我的程序编译良好,但不返回任何输出
- 当我尝试通过 arduino 上的引用传递布尔数组时出现问题
- 我正在尝试解决一个需要数组总和值但代码不起作用的问题,我想做这样的事情
- 编写 cin.get() 以接收字符数组时出现问题
- 在 C++ Consol 中的数组中执行用户命令时出现问题
- 存储另一个函数返回的布尔数组时遇到问题
- 当我在 CLion 中读取数组中的 txt 文件时C++编码问题
- 运行时C++数组初始化问题
- 我在解决此错误时遇到问题.我正在努力在主函数中传递数组