【Chapter 1】:了解PPM图片格式,按格式输出一张图片
前言
本节中简单介绍了一种方便代码输出的图片格式ppm,为后面查看各种实现的效果打了个基础。(虽然要看这种格式的文图片稍微有些不方便,有时间查查有没有什么方式可以直接将生成的图片转成jpg或其他可以直接查看的格式)
正文
书中提供的代码中没有写文件的操作,这部分工作需要自己补上(// * // 部分)。
#include <iostream>
#include <fstream> // * //
void main() {
int nx = 200;
int ny = 100;
std::ofstream outfile("PPMTest.ppm", std::ios_base::out); // * //
outfile << "P3\n" << nx << " " << ny << "\n255\n"; // * //
std::cout << "P3\n" << nx << " " << ny << "\n255\n";
for (int j = ny - 1; j >= 0; --j) {
for (int i = 0; i < nx; ++i) {
float r = float(i) / float(nx);
float g = float(j) / float(ny);
float b = float(ny) / float(nx);
int ir = int(255.99 * r);
int ig = int(255.99 * g);
int ib = int(255.99 * b);
outfile << ir << " " << ig << " " << ib << "\n"; // * //
std::cout << ir << " " << ig << " " << ib << "\n";
}
}
}
生成图片数据文件。
可使用XnView工具 打开生成的PPM 文件。