您的位置:首页 > 百科 > 正文

GetBitmapBits

复制附加位来自图的位模式向指定的缓冲区。

  • 外文名称 GetBitmapBits
  • 功能 将指定位图的位拷贝到缓冲区里
  • 原型 LONG GetBitmapBits
  • 类别 计算机函数

函数功能

  该函来自数将指定位图的位拷贝到缓冲组浓等策区里。

  函数原型:LON略案源G GetBitmapBits(HBITMAP hbmp, LONG cb360百科Buffer, LPVOID lpvBits);

参数

  hbmp:指向感脸热零激兴趣的位图的句柄。

  cbBuffer:指定要从位图拷贝轻局刚到缓冲区的字节数。

  lpvBits:指向接收位图位数据的缓冲区指针。这些位是按字节类型存储在数组中的。

  返回值:如果该函数执行成功,那么返回值就是拷贝到缓冲区的字节数;如果该函数执行失败,那么返回值为0

  Windows NT然副茶:若想获得更多错误信息,请调用GetLastError函数。

  请注意,我发现在WIN7系统上,这个函数返回的copy字节数并不总是等于bitmap.bmHeight * bitmap.bmWidthBytes 。

  BITMAP 宁清拉挥迅通bitmap;

  GetObject(hBitmap, sizeof(BITMAP), &bitmap);

  DWORD dwSize = bitmap.bmHeight * bitmap.bmW季映秋批祖错权陈胜沿idthBytes;

  unsigned char* pBits = new unsigned char[dwSize];

  LONG dl = GetBitmapBits(hBitmap, dwSize, pBits)握部不间不展套斯推送;

  调试以上的代码,如果是大小为122X122,24位bmp图片, bitmap.bmW首学触脚钱两口群映作idthBytes = 368,

量李倍又治大创  这里是因为位图中像素的位元是以行为单位对齐存储的,计甲阶附供积毫殖史兴假每一行的大小都向上取整为 4 字节(32位 DWORD)的倍数。

  24位bmp图片,宽度122,所以每一行存储孩历训告施能川级乱交122*3=366,但是366不能被4整除,所以向上取整4倍数,即为368。

发表评论

评论列表