在控制台输出BMP图片

在大家学会使用C或者C++语言在控制台上输入输出后,就会想能不能实现控制台来输出图片。然而在查找之后发现,可以用控制台输出16色字体。但是关于输出图片则是直接开始介绍windows中gdi提供的bmp图片输出函数。

实际上,在不使用其他工具的情况下控制台主要是用于输出字符形式。当然我们可以通过这种形式来输出图像。但是,由于图像类型众多,且图像的像素信息获取方式不同。这里主要是介绍控制台输出 各种类型的bmp图像。核心是将各类图片的像素信息转换为控制台的颜色信息,即32位位图转化为8位位图,24位位图转化为8位位图。

首先,在实现控制台显示BMP图片之前,我们需要知道一些原理。

  1. BMP格式图片信息

https://blog.csdn.net/wsfdl/article/details/7957370

https://blog.csdn.net/wisepragma/article/details/53228990

https://www.cnblogs.com/Asssjc/p/5742319.html

https://blog.csdn.net/weixin_42164528/article/details/80594667

  1. 控制台颜色显示原理 控制台用1byte表示颜色信息(前4位为BackgroundColor 后四位为前景色 ForegroundColor)

B1

B2

B3

B4

F1

F2

F3

F4

前四位和后四位颜色组成原理一样,B1表示颜色明暗,B2表示RED  B3表示 GREEN    B4表示BLUE 四位共能够表示16种颜色

3、CHAR_INFO数据结构 屏幕缓冲区字符单元信息

typedef struct _CHAR_INFO {

  union {

    WCHAR UnicodeChar;

    CHAR  AsciiChar;

  } Char;

  WORD  Attributes;

} CHAR_INFO, *PCHAR_INFO;

其中 Char存放字符的码值 Attributes存放字符属性

4 编程思路就是读取bmp图像的位图头信息和位图信息,之后根据不同位数的图像,进行相应读取图像颜色信息,之后进行转换后打印出来。

注意:图像大小只能通过控制台的字符大小来控制

文章后面贴有简单写的代码,仅供参考。

链接:https://pan.baidu.com/s/1K-ydHYAlfWEXztjjDJKpgQ
提取码:2kcu

  • 4
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值