2014-11-23 145 views
0

注意----我使用Borland的Turbo C++如何使用C++中的ASCII码在输出屏幕上显示图像?

我知道的Turbo C++是二十年的历史,它不支持最新的C++标准无论是。但由于我们学校仍然用它来教学生C++,我不能使用任何其他编译器。

我想使用ASCII文本在Turbo C++中显示图像。我已经使用在线转换器将图像转换为ASCII码。我现在应该做些什么来将其显示在我的程序中?

我正沿着这些线 -

  1. 复制的ASCII码思维的东西到一个txt文件。
  2. 使用getline函数读取文本文件。
  3. 将其显示在输出屏幕上。

我认为它可以工作,但是当我将ASCII图像复制到记事本时会出现困难。它破坏了ASCII图像的所有格式,而图像只是一个矩形的文本块。

有没有其他办法可以达到这个目的?如果我可以帮助,我不想使用任何其他库。我使用Turbo C++中的graphics.h库。另外,我对C++有些新东西(去年开始学习它),所以如果您尽可能简单地回答问题,我将不胜感激。

+0

为什么需要“复制到记事本” - 这似乎认为是必要的一步?那么ASCII文本如何“松散格式化”? – usr2564301 2014-11-23 14:56:29

+0

我需要从文本文件中读取ASCII文本以将其显示在屏幕上。所以我需要将ASCII码粘贴到文本文件编辑器中,以便保存它。通过丢失格式,我的意思是当我将文本复制到记事本时,所有的空格都被删除。 – 2014-11-23 15:03:21

+0

1。您可以将网上转换器的输出保存在Web浏览器中。 2.记事本很糟糕,通常不会删除空格;检查转换器的输出以找出原因。 – usr2564301 2014-11-23 15:11:42

回答

0

那么,第一个选择是找到另一个在线转换器,它会给你一个原始的,可复制的输出。在这种情况下,你可以使用你的方法。

第二种方法是自己构建一个ascii转换器。我认为在线工具将图像转换成ASCII字符的方式如下:

建一个表与相对亮度,所以: 空间为0亮度, 8 = 60%的亮度 0是80%birghtness #是90%的亮度 并继续这样下去。

  1. 将图像划分为块(例如10×10像素)
  2. 确定这样的块
  3. 的平均亮度查找一个ASCII字符以近似相同的相对亮度。
  4. 打印图像。

这是比较复杂的,如果你是新手,你可以先尝试一下你的方法。

+0

我使用的转换器给我一个可复制的输出。当我将ascii代码复制到MS Word时,它保持完美的格式。但是当我将它复制到记事本时,它会丢失所有的格式。所以这里的问题不在于转换器。 – 2014-11-23 14:52:15

+0

对我来说,它工作得很好,如果我选择“获取文本版本”,并复制到记事本中,它会显示图像。也许你的输入图像太大而无法在屏幕上打印?在这种情况下,记事本可能会在屏幕上的多行显示一行,这会导致一个奇怪的输出。 – Simon 2014-11-24 21:19:18

0

看来我是在将文本以错误的方式复制到记事本中。 get-text选项正常工作。我能够将ascii图像复制到记事本中并将其显示在我的程序中。

相关问题