Device-Dependent Bitmaps (DDB) 设备相关位图
设备相关的位图(DDB)使用单一结构BITMAP结构描述。该结构的成员指定矩形区域的宽度和高度,以像素为单位;将条目从设备调色板映射到像素的数组的宽度;以及器件的颜色格式,在每个像素的颜色平面和位数方面。应用程序可以通过调用GetDeviceCaps函数并指定适当的常量来检索设备的颜色格式。请注意,DDB不包含颜色值;相反,颜色是依赖于设备的格式。有关详细信息,请参阅位图中的颜色。因为每个设备都可以有自己的颜色集,所以为一个设备创建的DDB可能在不同的设备上可能不会很好地显示。
要在设备上下文中使用DDB,它必须具有该设备上下文的颜色组织。因此,DDB通常被称为兼容位图,并且通常具有比DIB更好的GDI性能。例如,要创建视频内存的位图,最好使用与主显示屏相同颜色格式的兼容位图。一旦在视频存储器中,渲染到位图并将其显示到屏幕上显着快于从系统存储器表面或直接从DIB。
除了能够实现更好的GDI性能之外,还可以使用兼容的位图来捕获图像(请参阅捕获图像),并在运行时为菜单创建位图,请参见“创建位图”(请参阅使用菜单)。
要在具有不同颜色组织的设备之间传输位图,请使用GetDIBits将兼容位图转换为DIB,并调用SetDIBits或StretchDIBits以将DIB显示到第二个设备。
DDB有两种类型:可丢弃和不可忽略。一个可丢弃的DDB是一个位图,系统丢弃位图没有被选中到DC,如果系统内存不足。CreateDiscardableBitmap函数创建可丢弃的位图。CreateBitmap,CreateCompatibleBitmap和CreateBitmapIndirect函数创建不可忽略的位图。
应用程序可以通过初始化所需的结构并调用CreateDIBitmap函数从DIB创建DDB。在调用CreateDIBitmap时指定CBM_INIT等效于调用CreateCompatibleBitmap函数以设备格式创建DDB,然后调用SetDIBits函数将DIB位转换为DDB。要确定设备是否支持SetDIBits函数,请调用GetDeviceCaps函数,将RC_DI_BITMAP指定为RASTERCAPS标志。原文:https://msdn.microsoft.com/en-us/library/dd183561(v=vs.85).aspx
相关阅读:
device-independent bitmap (DIB) 设备无关位图
Device-Dependent Bitmaps (DDB) 设备相关位图的更多相关文章
- windows设备相关位图与设备无关位图
windows支持两种位图格式,DDB(device-dependent bitmap),DIB(device-independent bitmap).设备相关位图用于windows显示系统中,其图像 ...
- device-independent bitmap (DIB) 设备无关位图
设备无关位图即独立于设备的位图(DIB)与"Device-Dependent Bitmaps (DDB) 设备相关位图"相比,它不再依赖于具体的设备,从而更适合在不同的计算机之间传 ...
- 第15章 设备无关位图_15.3 DIB和DDB的结合
第15章 设备相关位图_15.3 DIB和DDB的结合 15.3.1 从DIB创建DDB (1)hBitmap =CreateDIBitmap(…)——注意这名称会误导,实际上创建的是DDB 参数 说 ...
- 依赖于设备的位图(DDB) ,CreateCompatibleBitmap用法
DDB(Device-dependent bitmap)依赖于具体设备,这主要体现在以下两个方面: DDB的颜色模式必需与输出设备相一致.例如,如果当前的显示设备是256色模式,那么DDB必然也是25 ...
- 第15章 设备无关位图_15.1 DIB文件格式
15.1 DIB文件格式(一种文件格式,扩展名为BMP) 15.1.1 OS/2风格的DIB 文件格式 字段 说明 文件头 (BITMAPFILEHEADER) 1.共14个字节 2.缩写建议用bmf ...
- 第三章 CUDA设备相关
这章介绍了与CUDA设备相关的参数,并给出了了若干用于查询参数的函数. 章节代码(已合并): #include <stdio.h> #include "cuda_runtime. ...
- 《GPU高性能编程CUDA实战》第三章 CUDA设备相关
▶ 这章介绍了与CUDA设备相关的参数,并给出了了若干用于查询参数的函数. ● 代码(已合并) #include <stdio.h> #include "cuda_runtime ...
- [中英对照]Device Drivers in User Space: A Case for Network Device Driver | 用户态设备驱动: 以网卡驱动为例
前文初步介绍了Linux用户态设备驱动,本文将介绍一个典型的案例.Again, 如对Linux用户态设备驱动程序开发感兴趣,请阅读本文,否则请飘过. Device Drivers in User Sp ...
- Xamarin设备相关图片尺寸要求
Xamarin设备相关图片尺寸要求 Xamarin跨平台开发,要兼顾iOS.Android.尤其是图片方面,各个平台有对应的不同要求.在iOS中,需要提供没有后缀(设备无关单位尺寸).@2x(双倍 ...
随机推荐
- linux内核第二周
chapter 1 知识点梳理 (一)计算机是如何工作的?(总结)——三个法宝 ①存储程序计算机工作模型,计算机系统最最基础性的逻辑结构: ②函数调用堆栈,高级语言得以运行的基础,只有机器语言和汇编语 ...
- linux中断的下半部机制
一.中断处理为什么要下半部?Linux在中断处理中间中断处理分了上半部和下半部,目的就是提高系统的响应能力和并发能力.通俗一点来讲:当一个中断产生,调用该中断对应的处理程序(上半部)然后告诉系统,对应 ...
- MysQL使用一高级应用(下)
连接查询 连接查询分类如下: 表A inner join 表B:表A与表B匹配的行会出现在结果中 表A left join 表B:表A与表B匹配的行会出现在结果中,外加表A中独有的数据,未对应的数据使 ...
- Swift学习笔记 - Swift属性只读
在OC中我们经常用到只读属性,用readonly修饰一下就行了,但在Swift中已经不是这样修饰的了,下面记录一下Swift中只读属性的使用 在OC中的只读: //只读属性 @property(rea ...
- 爬虫bs4
CSS 选择器:BeautifulSoup4 和 lxml 一样,Beautiful Soup 也是一个HTML/XML的解析器,主要的功能也是如何解析和提取 HTML/XML 数据. lxml 只会 ...
- Dancing Links DLX
Dancing Links DLX Dancing Links 用来解精准覆盖问题. 精准覆盖问题有两种版本. 精准覆盖 : 给一个01矩阵,如何选出若干行,使得每列都有且仅有一个1. 可以求最少行数 ...
- 04_MySQL常见函数_单行函数
#单行函数细分1.字符函数2.数学函数3.日期函数4.其他函数5.流程控制函数 #单行函数 - 字符函数#一.字符函数#1. length 获取参数的字节长度SELECT LENGTH('john') ...
- eclipse及tomcat web站點
eclipse环境下如何配置tomcat https://www.cnblogs.com/Leo_wl/p/4769760.htmleclipse环境下如何配置tomcat,并且把项目部署到Tomca ...
- Moment.js的一些用法
前记:项目开发用到了日历插件(Pikaday.js),同时也用到了Moment.js(日期处理类库) 1.subtract:减去,下面代码的意思是减去1天 this.yestdayStr = mome ...
- 读懂 ECMAScript 规格
概述 规格文件是计算机语言的官方标准,详细描述语法规则和实现方法. 一般来说,没有必要阅读规格,除非你要写编译器.因为规格写得非常抽象和精炼,又缺乏实例,不容易理解,而且对于解决实际的应用问题,帮助不 ...