zoukankan      html  css  js  c++  java
  • C++ 输出PPM格式图片文件

    PPM简介

    学习图形学时为了直观地观察结果,需要输出图片,而PPM是一种最简单的图片格式,非常适合新手使用。
    PPM文件的内容大概是这样的:

    第一行固定为P3,代表写入的是PPM格式的RGB图像,除此之外还有PBM和PGM格式分别对应P1和P2,代表单色图和灰度图。
    第二行两个整数代表图片的宽度高度
    第三行代表像素值范围,通常写为255,代表每个颜色通道的值在0-255之间。

    接下来每行三个整数代表一个像素各个颜色通道的值,总共有宽度*高度行。
    顺序按照从左上角开始,每行从左往右,然后从上往下逐行填充。

    用C++输出PPM图片的示例代码

    int main()
    {
    	ofstream OutImage;
    	OutImage.open("Image.ppm");
    	int nx = 200;
    	int ny = 100;
    	OutImage << "P3
    " << nx << ' ' << ny << "
    255
    ";
    	for(int i = ny-1; i >= 0; i--)
    	{
    		for (int j = 0; j < nx; j++)
    		{
    			float r = (float)j / nx;
    			float g = (float)i / ny;
    			float b = 0.2;
    			int ir = int(255.99 * r);
    			int ig = int(255.99 * g);
    			int ib = int(255.99 * b);
    			OutImage << ir << ' ' << ig << ' ' << ib << '
    ';
    		}
    	}
    	return 0;
    }
    

    最后要查看PPM格式的图片需要支持该格式的图片查看器,我使用的是XnView。
    结果:

  • 相关阅读:
    Go语言基础--1.1 变量的声明
    基本语法
    弹性盒子修改
    弹性盒子内容
    弹性盒子
    响应式列重置
    栅格系统
    布局容器
    额外按钮
    可消失的弹出框
  • 原文地址:https://www.cnblogs.com/LiveForGame/p/11768925.html
Copyright © 2011-2022 走看看