| 90 | } |
| 91 | |
| 92 | static bool WriteP3(const Image& image, IWriter& writer) |
| 93 | { |
| 94 | writer.write("P3\n", 3); |
| 95 | WriteNumber(writer, image.width()); |
| 96 | writer.write(' '); |
| 97 | WriteNumber(writer, image.height()); |
| 98 | writer.write('\n'); |
| 99 | writer.write("255\n", 4); |
| 100 | |
| 101 | for (int y = 0; y < image.height(); ++y) |
| 102 | { |
| 103 | for (int x = 0; x + 1 < image.width(); ++x) |
| 104 | { |
| 105 | const Color& c = image[y][x]; |
| 106 | WriteNumber(writer, c.r); |
| 107 | writer.write(' '); |
| 108 | WriteNumber(writer, c.g); |
| 109 | writer.write(' '); |
| 110 | WriteNumber(writer, c.b); |
| 111 | writer.write(' '); |
| 112 | } |
| 113 | |
| 114 | if (1 <= image.width()) |
| 115 | { |
| 116 | const Color& c = image[y][image.width() - 1]; |
| 117 | WriteNumber(writer, c.r); |
| 118 | writer.write(' '); |
| 119 | WriteNumber(writer, c.g); |
| 120 | writer.write(' '); |
| 121 | WriteNumber(writer, c.b); |
| 122 | writer.write('\n'); |
| 123 | } |
| 124 | } |
| 125 | |
| 126 | return true; |
| 127 | } |
| 128 | |
| 129 | static bool WriteP4(const Image& image, IWriter& writer) |
| 130 | { |
no test coverage detected