设备无关位图即独立于设备的位图(DIB)与"Device-Dependent Bitmaps (DDB) 设备相关位图"相比,它不再依赖于具体的设备,从而更适合在不同的计算机之间传输和显示.它包含一个颜色表,颜色表描述像素值如何对应于RGB颜色值,其描述通过发光产生的颜色.因此,DIB可以在任何设备上实现适当的配色方案.DIB包含以下颜色和尺寸信息: 创建矩形图像的设备的颜色格式. 创建矩形图像的设备的分辨率. 创建图像的设备的调色板. 将红,绿,蓝(RGB)三元组映射到矩形图像中的像…
windows支持两种位图格式,DDB(device-dependent bitmap),DIB(device-independent bitmap).设备相关位图用于windows显示系统中,其图像格式与显卡格式兼容,因此显示速度很快.设备不相关位图定义了位图的文件格式,用于位图传输,由于其数据格式可能与显卡格式不一致,直接使用设备不相关位图显示图像时需要进行转换,因此显示速度较慢. 历史上显卡支持16色或者256色,分别使用4位或者8位表示一个像素颜色.在16色系统中,仅支持黑白灰,红绿蓝,…
第15章 设备相关位图_15.3 DIB和DDB的结合 15.3.1 从DIB创建DDB (1)hBitmap =CreateDIBitmap(…)——注意这名称会误导,实际上创建的是DDB 参数 说明 hdc 设备环境句柄,可以为NULL. pInfoHdr 指向DIB信息头的指针,即BITMAPINFOHEADER fInit 0或CBM_INIT.CBM_INIT指定用后面3个参数来初始化DDB中的像素位 pBits DIB像素位的指针 pInfo DIB信息指针,即BITMAPINFO(…
15.1 DIB文件格式(一种文件格式,扩展名为BMP) 15.1.1 OS/2风格的DIB 文件格式 字段 说明 文件头 (BITMAPFILEHEADER) 1.共14个字节 2.缩写建议用bmfh WORD  bfType 文件签名,表示位图文件,以0x4D42,即字母“BM”打头 DWORD bfSize 整个文件的大小(含文件头的大小).单位:字节 WORD  bfReserved1 以下这两个字段必须为0.鼠标指针文件,格式类似于DIB但这两个字段表示了“热点”的位置. WORD  …
15.2.1 探究DIB (1)DIB文件的结构 整个文件 紧凑DIB(整个文件除文件头) 文件头(File Header) 信息头(Information Header) 信息头(Information Header) 颜色表(Color Table) 颜色表(Color Table) 像素位(Pixel Bits) 像素位(Pixel Bits) 注意:①紧凑DIB在内存中是连续的,即整个DIB存在单个内存块中 ②DIB载入内存时,像素位与信息头可以分别存在两个内存块,即内存不连续. (2)…
设备相关的位图(DDB)使用单一结构BITMAP结构描述.该结构的成员指定矩形区域的宽度和高度,以像素为单位;将条目从设备调色板映射到像素的数组的宽度;以及器件的颜色格式,在每个像素的颜色平面和位数方面.应用程序可以通过调用GetDeviceCaps函数并指定适当的常量来检索设备的颜色格式.请注意,DDB不包含颜色值;相反,颜色是依赖于设备的格式.有关详细信息,请参阅位图中的颜色.因为每个设备都可以有自己的颜色集,所以为一个设备创建的DDB可能在不同的设备上可能不会很好地显示.要在设备上下文中使…
WPF从发布之日起,一直将“分辨率无关(resolution independence)”作为其亮点,声称使用WPF制作的用户界面在轻巧的Ultra-Mobile PC的屏幕上和在50英寸的电视机上都能很好地显示.微软之所以称WPF具备“分辨率无关”这一特性,主要是因为WPF的坐标单位设计成为以1/96英寸为一个逻辑像素单位,而不是与设备相关的像素单位. 但是微软本身对WPF“分辨率无关”这一特性没有作更多的具体解释,导致用户会产生很多误解. 误解之一 改变显示器的分辨率设置,同一个WPF的用户…
原文:论wpf的设备无关性 - 简书 WPF从发布之日起,一直将“分辨率无关(resolution independence)”作为其亮点,声称使用WPF制作的用户界面在轻巧的Ultra-Mobile PC的屏幕上和在50英寸的电视机上都能很好地显示.微软之所以称WPF具备“分辨率无关”这一特性,主要是因为WPF的坐标单位设计成为以1/96英寸为一个逻辑像素单位,而不是与设备相关的像素单位. 但是微软本身对WPF“分辨率无关”这一特性没有作更多的具体解释,导致用户会产生很多误解. 误解之一 改变…
在正文开始之前需要介绍一个人:Sean Sexton. 来自明尼苏达双城的软件工程师.最为出色的是他维护了两个博客:2,000ThingsYou Should Know About C# 和 2,000 Things You Should Know About WPF .他以类似微博式的150字简短语言来每天更新一条WPF和C#重要又容易被遗忘的知识.很希望能够分享给大家. 本系列我不仅会翻译他的每一个tip,也会加入自己开发之中的看法和见解.本系列我希望自己也能和他一样坚持下来,每天的进步才能…
DDB(Device-dependent bitmap)依赖于具体设备,这主要体现在以下两个方面: DDB的颜色模式必需与输出设备相一致.例如,如果当前的显示设备是256色模式,那么DDB必然也是256色的,即一个像素用一个字节表示. 在256色以下的位图中存储的像素值是系统调色板的索引,其颜色依赖于系统调色板. 由于DDB高度依赖输出设备,所以DDB只能存在于内存中,它要么在视频内存中,要么在系统内存中. 11.3.1 DDB的创建 MFC的CBitmap类封装了DDB.该类提供了几个函数用来…