Я пытаюсь создать массив, используя структуру, чтобы создать файл 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
Что не так с моим текущим подходом и что я могу сделать по-другому в моем коде? Спасибо за любую помощь!