将书上对应的代码抄写了一遍。

#include <iostream>
#include <fstream>using namespace std;int main()
{int nx = 200;int ny = 100;ofstream outfile( "mytest.txt", 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 = 0.2;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";}}
}

将代码原封不动的输入后,确实能够运行(给作者点个赞)。但是说好的图片呢?原文有这么一句话:Opening the output file (in ToyViewer on my mac, but try it in your favorite viewer and google “ppm viewer” if your viewer doesn’t support it) shows(结果的那张图)。
有两个疑问:
1. “the output file”在哪?
2. “ppm viewer”是什么?
感觉告诉我接下来应该这么做:先将输出结果导入文件(即输出到文件),然后用一个ppm viewer来将这个图片看成图片(但愿如此)。

2.1 将结果输出到文件

如上红色部分的代码就是为了将输出结果导入文件。

#include <fstream>
ofstream outfile( "mytest.txt", ios_base::out);
outfile << "P3\n" << nx << " " << ny << "\n255\n";
outfile << ir << " " << ig << " " << ib << "\n";

简单解释如下:

#include <fstream>
/*iostream是输入输出流库标准文件(注意它没有后缀),它包含cout的信息,这对我们的程序是必需的。#include是预处理器指示符(preprocessor directive),它把iostream的内容读入我们的文本文件中*/
ofstream outfile( ".\\results\\FirstImage.txt", ios_base::out);
/*打开当前目录(工程目录)下results文件夹中的FirstImage.txt文件*/
outfile << "P3\n" << nx << " " << ny << "\n255\n";
/*往文件中写入数据*/

顺便说一下标准输出:

#include <iostream>
using namespace std;
/*这条语句被称作using指示符(using directive)。 C++标准库中的名字都是在一个称作std的名字空间中声明的,这些名字在我们的程序文本文件中是不可见的,除非我们显式地使它们可见。using指示符告诉编译器要使用在名字空间std中声明的名字。*/
std::cout << "P3\n" << nx << " " << ny << "\n255\n";
/*往屏幕上输出数据*/

将结果输出到文件mytest.txt,这个就是“the output file”啦。
(这个文件已经传到“我的资源”中)

2.2 找一个ppm viewer

结缘巧合,找到了XnView。用这个软件看mytest.txt时,看到的是这个:这里贴出一张通过“XnView”将结果的.txt转换成.jpg后的图片:

完整的操作步骤是这样的滴:

问题二:用C++输出第一张图片相关推荐

  1. 问题三:类的头文件和实现文件分别写什么(用向量表示RGB输出“第一张图片”)

    书上接下来是介绍一个表示向量的类(vec3).所以,我要先创建一个新的类vec3.创建该类之后,生成两个文件:vec3.cpp和vec3.h.像之前一样,还是将书上的代码原封不动地抄写下来,如下: # ...

  2. python加载图片并显示_python读取目录下所有的jpg文件,并显示第一张图片的示例...

    python读取目录下所有的jpg文件,并显示第一张图片的示例 如下所示: # -*- coding: UTF-8 -*- import numpy as np import os from scip ...

  3. 帝国CMS调用图集第一张图片的方法

    图片集调用代码: <?php$picr=explode(egetzy('rn'),$navinfor[morepic]);for($p=0;$p<count($picr);$p++){$s ...

  4. c语言二维数组对角线输出字符,用C编程一个4*4的矩阵,用二维数组,求对角线元素的和。,c语言如何使二维数组 输出为矩阵的形式...

    导航:网站首页 > 用C编程一个4*4的矩阵,用二维数组,求对角线元素的和.,c语言如何使二维数组 输出为矩阵的形式 用C编程一个4*4的矩阵,用二维数组,求对角线元素的和.,c语言如何使二维数 ...

  5. 0基础学python第一天:认识python,安装python,输出第一个程序

    目录 目录 目录 一(了解)Python简介: 二.发展历程: 三.Python 特点: 四.Python语言主要应用领域: 1:人工智能 2:云计算 3:Web开发 4:爬虫技术 5:网络游戏开发 ...

  6. c语言代码,输入两个数,输出第一个数到第二个数之间所有的数

    用C语言实现,输入两个数,输出第一个数到第二个数之间包含的所有数 #include <stdio.h> int num(int x, int y); int main() {int a1, ...

  7. 使用神经网络做二分类,输出层需要几个神经元?应该选择哪一种激活函数?如果要处理minst数据、输出层需要几个神经元?使用那种激活函数?如果使用神经网络预测房价,输出层需要几个神经元、使用什么激活函数?

    使用神经网络做二分类,输出层需要几个神经元?应该选择哪一种激活函数?如果要处理minst数据.输出层需要几个神经元?使用那种激活函数?如果使用神经网络预测房价,输出层需要几个神经元.使用什么激活函数? ...

  8. 获取内容第一张图片地址的函数

    C#获取文章类第一张图片的地址的函数(留着以后用),先说一下思路: 首先找到内容里面第一个<img标签的位置,然后找到从这个起的第一个>的位置,得到第一张图片的完整标签. 然后通过分隔空格 ...

  9. ASP保存远程图片到本地 同时取得第一张图片

    这是本人在SNA新闻采集系统 For 动力3.62 里使用的几个函数 可以普遍的使用在采集 或者 在线添加文章中 以下是函数程序代码 <% '========================== ...

最新文章

  1. 操作系统-并发:死锁和饥饿
  2. 世界上没有后悔药,时间匆匆,从关注它们开始......
  3. android studio 配置国内镜像
  4. EDEN-MACE 1.4.0 更新,增加数据清理功能
  5. golang开发效率神器汇总
  6. 华为ax3怎么接光纤sc接口_光纤收发器接口类型、连接、指示灯说明及故障症断...
  7. 搜狗Q1每天进账1886万,输入法日处理6亿请求成中国最大语音App
  8. Python(入门小练习1)
  9. [导入]Mobile Media API概述
  10. 如何选择深度学习框架 TensorFlow/Torch/Mxnet/Theano
  11. 使用命令行修改当前gnome终端的名称技术
  12. MySQL详细学习教程(建议收藏)
  13. [书籍翻译]12周撰写期刊文章 学术出版成功指南——第 12周:文章投稿
  14. 媒体在计算机科学中的两种含义,多媒体技术应用_思考与练习题.doc
  15. 云服务器保存文件,云服务器保存文件命令
  16. ckplayer网页播放器简易教程
  17. element table filed显示不全
  18. 微信支付v3 AEAD_AES_256_GCM解密JS版本代码及验证 javascript
  19. mysql主从配置duxi_DUX主题
  20. js库笔记(一):swr ahooks

热门文章

  1. Android使用sqlliteOpenhelper更改数据库的存储路径放到SD卡上
  2. 以对象的方式来访问xml数据表(二)
  3. ganglia metric extended by gmetric command line tool
  4. phoenixframework自动化测试平台webUI代码示例
  5. python调试代码举例
  6. 如何在20130513image上,备份NAND到SD卡,然后把这个SD卡做成可以自启动的SD卡
  7. Nginx 与 PHP-Fpm的安装过程遇到的问题
  8. [转载]C#深拷贝的方法
  9. 【Hard 递归 动态规划 回文串15】LeetCode 730. Count Different Palindromic Subsequences
  10. QT+OPENCV+FFTW内存问题