Dict.CN 在线词典, 英语学习, 在线翻译

学海苦作舟,书山勤为径

留下点回忆

常用链接

统计

积分与排名

Denoise

English study

Web技术

数据压缩

一些连接

最新评论

GetBitmapBits和GetDIBits的区别(Windows GDI)

Windows GDI中有两个用来得到位图图像数据的API,分别是GetBitmapBits和GetDIBits;按照MSDN的解释,前者是用来得到设备独立位图的BITS,后者是得到兼容位图的BITS,所以在调用该函数的时候,第一个主要的区别是:GetDIBits需要提供一个设备内容,同时需要将位图的HANDLE选进这个设备内容(DC)才能能够得到位图的信息。
我想上面的区别大家可能都知道,其实它还隐藏着另一个区别:就是对于同一个位图,得到的BITS内容的BUFFER不一样!
大家都知道BMP文件存储数据是倒叙的,也就是从图像的右下角开始存储,文件的最后是图像的左上角(这个来历可以看:WINDOWS编程中介绍);使用GetBitmapBits取得的BUFFER,位图的右下角的内容为第一个字节,实际上和真正的图像字节应该是一样的,而GetDIBits刚好相反,其BUFFER的顺序符合BMP文件中的顺序,如果按照正常的坐标,其存储顺序应该是倒叙。
所以在程序中要合理的使用这两个API来得到你想要的位图数据。

posted on 2006-02-16 11:54 笨笨 阅读(8998) 评论(8)  编辑 收藏 引用

评论

# re: GetBitmapBits和GetDIBits的区别(Windows GDI)[未登录] 2008-10-09 20:52 NB

高人啊,佩服。  回复  更多评论   

# re: GetBitmapBits和GetDIBits的区别(Windows GDI) 2008-11-20 12:26 未命名

UP  回复  更多评论   

# re: GetBitmapBits和GetDIBits的区别(Windows GDI) 2009-08-08 11:05 bgfx

超级大牛逼!  回复  更多评论   

# re: GetBitmapBits和GetDIBits的区别(Windows GDI) 2010-02-13 19:26 DIB?

DIB不是设备无关位图么?为什么还要HDC呢?

GetDIBits
Get Bits of Device Independent Bitmap ?  回复  更多评论   

# re: GetBitmapBits和GetDIBits的区别(Windows GDI) 2010-05-31 15:52 warmworm

bitmap 是 DDB
所以 要得到 DIB 需要知道 DDB 是依赖于哪个device  回复  更多评论   

# re: GetBitmapBits和GetDIBits的区别(Windows GDI) 2011-07-19 15:37 cong

你太牛了!  回复  更多评论   

# re: GetBitmapBits和GetDIBits的区别(Windows GDI) 2012-05-29 22:48 cadinfo

好像是左下角和左上角的关系吧,这种还有人叫好,
大家不去深究。  回复  更多评论   


只有注册用户登录后才能发表评论。
【推荐】超50万行VC++源码: 大型组态工控、电力仿真CAD与GIS源码库
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理