CreateDIBSection 与 CreateDIBITmap 创建的图片大小区别

6 篇文章 0 订阅

从网上摘操整理:


CreateDIBSection (DIB)设备无关位图                              CreateDIBITmap(DDB)设备相关位图

创建的是DIBSECTION结构                                                 创建的是BIT MAP结构

 

DIB与设备有关,创建的位深是不确定的。                       DDB创建的位深是固定的(根据参考位数);

PS:位深,即位图中要用多少个二进制位来表示每个点的颜色,是分辨率的一个重要指标。常用有1位(单色),2位(4色,CGA),4位(16色,VGA),8位(256色),16位(增强色),24位和32位(真彩色)等。色深16位以上的位图还可以根据其中分别表示RGB三原色或CMYK四原色(有的还包括Alpha通道)的位数进一步分类,如16位位图图片还可分为R5G6B5R5G5B5X1(有1位不携带信息),R5G5B5A1R4G4B4A4等。

这里才是图片大小差别的原因,(一直以为DIB比DDB信息多,应该图片就大,位深没有考虑到)

 

CreateDIBSection()容易控制,因为你构造的BITMAPINFO是多少bit就按多少bIT 来操作它的位数据.

CreateDIBitmap(), create出来的是DDB,是和屏幕色深相同的,在这台机它可能是16Bit的,而在那台机器它可能是24bit或者是32bIT ,明显不利于代码操控/维护。

但是DIB肯定比DDB慢,因为它还要转成DDB显示.


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值