CreateDIBSection 与 CreateDIBITmap 创建的图片大小区别
2014-05-29 13:58
330 查看
从网上摘操整理:
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位位图图片还可分为R5G6B5,R5G5B5X1(有1位不携带信息),R5G5B5A1,R4G4B4A4等。
这里才是图片大小差别的原因,(一直以为DIB比DDB信息多,应该图片就大,位深没有考虑到)
CreateDIBSection()容易控制,因为你构造的BITMAPINFO是多少bit就按多少bIT 来操作它的位数据.
CreateDIBitmap(), create出来的是DDB,是和屏幕色深相同的,在这台机它可能是16Bit的,而在那台机器它可能是24bit或者是32bIT ,明显不利于代码操控/维护。
但是DIB肯定比DDB慢,因为它还要转成DDB显示.
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位位图图片还可分为R5G6B5,R5G5B5X1(有1位不携带信息),R5G5B5A1,R4G4B4A4等。
这里才是图片大小差别的原因,(一直以为DIB比DDB信息多,应该图片就大,位深没有考虑到)
CreateDIBSection()容易控制,因为你构造的BITMAPINFO是多少bit就按多少bIT 来操作它的位数据.
CreateDIBitmap(), create出来的是DDB,是和屏幕色深相同的,在这台机它可能是16Bit的,而在那台机器它可能是24bit或者是32bIT ,明显不利于代码操控/维护。
但是DIB肯定比DDB慢,因为它还要转成DDB显示.
相关文章推荐
- Android-->原生保存Bitmap(图片),压缩图片,创建图片缩略图和视频缩略图(任意大小)
- Android 改变ImageView图片的Bitmap大小
- Android图片大小调整动态实现方法(bitmap)
- Android编程之Bitmap图片压缩大小
- 使用BitmapFactory压缩图片大小
- android中Bitmap图像处理 修改图片大小以及保存时的文件大小
- 创建一个可调大小的图片网格系统(译)
- bitmap图片压缩到制定字节大小
- 图片适应bitmap的大小 http上传文件
- Android获取bitmap图片的大小
- 关于获取Bitmap图片的大小的方法
- Android 图片大小超过预算的VM:java.lang.OutOfMemoryError: bitmap size exceeds VM budget
- bitmap 将图片压缩到指定的大小 JAVA
- Android编程之Bitmap图片压缩大小
- android下载网络图片,BitmapFactory创建bitmap
- android-bitmap创建设置图片
- [Android算法] bitmap 将图片压缩到指定的大小
- android 计算Bitmap占byte大小,以及Bitmap中像素数的计算,另外再给出一个按尺寸裁剪图片的方法
- bitmap 将图片压缩到指定的大小 JAVA
- Android开发全程记录(七)——bitmap设置图片大小的方法