精通Visual C++图象编程----读书笔记1

 读了半天终于找到读不懂代码的解释,现在摘抄如下:
    DIB和DDB位图的相互转换是DIB操作最重要的操作之一.BitmapToDIB将DDB转换为DIB,我们定义了两个函数变体,原形分别为:
    HDIB BitmapToDIB(HBITMAP,HPALETTE);
    HDIB BitmapToDIB(HBITMAP,HPALETTE,WORD);
   前者是基本函数,她将使用指定调色板的颜色表和设备所使用的图象位数来创建来创建DIB,其基本步骤如下:
  (1)初始化BITMAPINFOHEADER结构.
  (2)用SelectObject将与DDB对应的调色板(或指定的调色板)选进合适的设备上下问中,并用RealizePalette实现它.
  (3)分配足够大的内容空间用以存放DIB的BITMAPINFOHEADER结构和颜色表.
  (4)设置LpBits参数为NULL,调用GetDIBits函数以确定BITMAPINFOHEADER结构的biSizeImage域的值(dIB图象位数据的存储量).如果biSizeImage域的值仍为0,则用如下公式计算其值:
   (((biWidth*biBitCount)+31)&~31)>>3)*biHeight
      (5)根据颜色表和数据位的大小重新和精确分配内存。
  (6)再调用GetDLBits以填充颜色表和数据位.
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值