MFC绘图总结-DIB图形绘制
2014-09-18 13:03
429 查看
参考文档: 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上。
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上。
相关文章推荐
- MFC绘图总结-屏幕截屏,获取DIB/DDB图形Pixel
- VS2010 MFC使用TeeChart绘图控件之二:绘制图形(折线图,柱状图)
- 利用Microsoft VC++6.0 的MFC 的绘图工具实现简单图形的绘制
- MFC基本图形的绘制(三)在SDI中实现绘图操作
- 基于MFC串口编程和曲线图绘制(visual studio2008,Teechart绘图控件)的程序总结
- MFC绘图[1]--几种绘图方式和几种图形绘制
- MFC 图形图像处理 -- 总结
- Symbian编程总结-图形图像篇-使用双缓存进行图形的绘制
- flash 绘图API:绘制基础的图形
- 轻量级网页客户端矢量图形绘制技术总结(lightweight techniques for online drawing)
- 【Visual C++】游戏开发笔记之四——游戏画面绘图(一)基本图形绘制
- MFC在VIEW的Client区绘制图形
- EVC MFC绘图容易出现的问题总结
- flash 绘图API:绘制基础的图形
- 绘制图形总结
- 使用绘图类库flotr2来绘制HTML5的图形和图表
- 【DirectX】D3D中基本图形绘制(总结)
- Symbian编程总结-图形图像篇-RPG地图绘制引擎
- MFC/GDI绘制图形
- Symbian编程总结-图形图像篇-使用双缓存进行图形的绘制