MFC绘图总结-DIB图形绘制

89 篇文章 5 订阅
60 篇文章 1 订阅

参考文档: http://blog.csdn.net/hnust_xiehonghao/article/details/37652927

http://blog.sina.com.cn/s/blog_4c75bd8c0100zsw7.html

Owed by: 春夜喜雨 http://blog.csdn.net/chunyexiyu  转载请标明来源 

 

绘制DIB图到到设备,明确一点,DIB设备无关图形向设备CDC上绘的话,肯定是需要经过图形pixel像素转换的,要转换成设备的颜色像素格式。

 

参考这段说明:

DIB的颜色信息储存在自己的颜色表中,程序一般要根据颜色表为DIB创建逻辑调色板。

在输出一幅DIB之前,程序应该将其逻辑调色板选入到相关的设备上下文中并实现到系统调色板中,然后再调用相关的GDI函数(如::SetDIBitsToDevice或::StretchDIBits)输出DIB。

在输出过程中,GDI函数会把DIB转换成DDB,这项工作主要包括以下两步:

将DIB的颜色格式转换成与输出设备相同的颜色格式。

 

例如,在真彩色的显示模式下要显示一个256色的DIB,则应该将其转换成24位的颜色格式。

将DIB像素的逻辑颜色索引转换成系统调色板索引。

 

DIB图形绘制的方法:

1.       通过CImage绘制图形文件(支持png/bmp/jpg/gif等)

对于DIB图形文件,方法比较简单,也比较易用:

已有DIB图形的文件,使用CImage::load加载图形,然后再使用CImage::Draw绘制到设置DC绑定的图形上即可

 

2.       通过CBitmap加载文件并绘制(仅支持bmp等少量格式)

CImage类似,CBitmap提供了LoadBitmap方法,加载图形,把一个DIB图形加载成为了一个DDB图形,然后可以用CBitmap::Draw等方法绘制

 

3.       通过转换为DDB图形,绘图

如果已有内存DIB信息,可以用过CreateDIBitmap函数,把DIB图形结构和数据传入,返回一个DDB的图形HBITMAP

 

4.       直接把DIB图形绘制到设备中,函数中自带转换

SetDIBitsToDevice或StretchDIBits函数,通过输入DIB图形信息和HDC以及绘制区域等,直接把DIB图形绘到设备CDC上。

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

春夜喜雨

稀罕你的喜欢!!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值