GetBitmapBits和GetDIBits的区别(Windows GDI)

转载 2011年07月19日 15:37:39

这都能被发现!

 

原文地址http://www.cppblog.com/windcsn/archive/2006/02/16/3284.html

 

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

相关文章推荐

GetObject 和 GetBitmapBits 获取位图数据的区别

表面上看GetBitmapBits(...) 和 GetObject(...)都可以获取位图句柄中的数据,例如: 第一种方法:      HBITMAP hbitmap = (HBITMAP)Load...
  • jfu22
  • jfu22
  • 2015年04月25日 10:14
  • 1919

GetBitmapBits和GetDIBits的区别(Windows GDI)

Windows GDI中有两个用来得到位图图像数据的API,分别是GetBitmapBits和GetDIBits; 按照MSDN的解释,前者是用来得到设备独立位图的BITS, 后者是得到兼容位图的...

GetBitmapBits和GetDIBits

  • 2009年03月15日 22:07
  • 3KB
  • 下载

Windows GDI和GDI+ 区别和联系简介

C++.Net,STL、BCG、GDI+、设计模式等

Windows 中GDI、设备描述表和位图

在Windows中,所有的图形和图像显示操作都是通过GDI(Graphic Device Interface)模块完成,,而GDI的显示都是由设备描述表(Context Device,简称DC)来完成...

windows程序设计之GDI简介

最近在做一个有关激光笔的小项目,和学长们一起做的。里面还有硬件成份,现在因为才开始做,我主要做软件上面的东西,当然技术含量是很少的···诶,学了一年左右了,水平还是没很大长进啊~~~刚刚C入门,SDK...

MFC和Win32之三___CGdiObject类和windows Gdi对象

小结: 前面讲到的windows窗口对象,在windows下用句柄来代表之,并且用了一个数据结构WNDCLASS(窗口类)来描述之。同理,windows的Gdi对象也有一些句柄来代表之(比如hPen...

Windows GDI:CDC使用总结

一、DC函数的配对使用GetDC — ReleaseDC GetWindowDC — ReleaseDC CreateDC — DeleteDC二、GetDC与GetWindowDC1、HDC G...

逐梦旅程学习笔记 Windows/GDI 示例02:双缓冲贴图/绘制自由线条

继续GDi绘图,这个示例主要包括两个方面: 1、双缓冲绘图 2、

Windows GDI:CDC绘制Bitmap

一、 BitBlt函数原型:BOOL CDC::BitBlt( int x, // 目标矩形区域左上角x坐标 int y, // 目标矩形区域左上...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:GetBitmapBits和GetDIBits的区别(Windows GDI)
举报原因:
原因补充:

(最多只允许输入30个字)