getdibits

  name="google_ads_frame" marginwidth="0" marginheight="0" src="http://pagead2.googlesyndication.com/pagead/ads?client=ca-pub-5572165936844014&dt=1193665761703&lmt=1193665780&format=336x280_as&output=html&correlator=1193665761687&url=http%3A%2F%2Fwww.codeguru.cn%2Fpublic%2Fiframe%2Fwinapiiframe.htm&color_bg=FFFFFF&color_text=000000&color_link=000000&color_url=FFFFFF&color_border=FFFFFF&ad_type=text&ga_vid=1285758818.1193665762&ga_sid=1193665762&ga_hid=111695597&flash=9&u_h=768&u_w=1024&u_ah=740&u_aw=1024&u_cd=32&u_tz=480&u_his=8&u_java=true" frameborder="0" width="336" scrolling="no" height="280" allowtransparency="allowtransparency">     函数功能:GetDIBits函数检取指定位图的信息,并将其以指定格式复制到一个缓冲区中。

    函数原型:int GetDIBits(HDC hdc, HBITMAP hbmp, UINT uStartScan, UINT cScanLines, LPVOID lpvBits, LPBITMAPINFO lpbi, UINT uUsage);

    参数:

    hdc:设备环境句柄。

    hbmp:位图句柄。

    uStartScan:指定检索的第一个扫描线。

    cScanLines:指定检索的扫描线数。

    lpvBits:指向用来检索位图数据的缓冲区的指针。如果此参数为NULL,那么函数将把位图的维数与格式传递给lpbi参数指向的BITMAPINFO结构。

    lpbi:指向一个BITMAPINFO结构的指外,此结构确定了设备无在位图的数据格式。

    uUsage:指定BITMAPINFO结构的bmiColors成员的格式。它必须为下列取值:

    DIB_PAL_COLORS:颜色表由指向当前逻辑调色板的16位索引值数组构成。

    DIB_RGB_COLORS:颜色表由红、绿、蓝(RGB)三个直接值构成。

    返回值:如果lpvBits参数非空,并且函数调用成功,那么返回值为从位图复制的扫描线数。

    Windows 95和Windows 98:如果lpvBits参数为NULL并且GetDIBits成功地填充了BITMAPINFO结构,那么返回值为位图中总共的扫描线数。

    Windows NT:如果lpvBits参数为NULL并且GetDIBits成功地填充了BITMAPINFO结构,那么返回值为非0。如果函数执行失败,那么将返回0值。Windows NT:若想获得更多错误信息,请调用callGetLastError函数。

    注释:如果所需要的DIB格式与其内部格式相匹配,那么位图的RGB值将被复制。如果不匹配,那么将合成一个颜色表。下表描述了针对每一种颜色格式所合成的颜色表。

    1_BPP:颜色表中仅包含黑白表项。

    4_BPP:颜色表由标准VGA定义的颜色组合而成。

    8_BPP:颜色表由GDI定义的256色组合而成。

    24_BPP:不返回颜色表。

    如果lpvBits参数为一个有效指针,那么位图信息头结构的前6个成员必须初始化为DIB的大小和格式。

    注意:位图信息头结构可为以下几种格式:

    操作系统位图信息头结构(Operating System Bitmap Information Header)

    Windows NT 3.51及早期的BITMAPINFOHEADER

    Windows NT 4.0及Windows 95中的BITMAPV4HEADER

    Windows NT 5.0及Windows 98中的BITMAPV5HEADER

    通过将高度设为正数来指定一个自下而上的DIB,而自上而下的DIB则通过设置一个负的高度值来指定。位图的颜色表将附加在BITMAPINFO结构的后面。

    如果lpvBits为NULL,那么GetDIBits将检查lpbi所指向的第一个结构的第一个成员。这一成员必须指定BITMAPCOREHEADER结构或位图信息头结构的字节数。函数将通过指定的大小来确定剩余成员如何被初始化。

    如果lpvBits为NULL,并且BITMAPINFO结构的bit count成员初始化为0,那么GetDIBits将不填充BITMAPCOREHEADER结构或位图信息头结构的颜色表部分。这一技术可用来查询位图属性。

    应用程序调用这个函数时必须将hbmp参数所标识的位图选择到一个设备环境中。

    自下而上DIB的原点为位图的左下角,自上而下DIB的原点为其左上角。

    速查:Windows NT:3.1及以上版本;Windows:95及以上版本;Windows CE:不支持;头文件:wingdi.h;库文件:gdi32.lib。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值