DDB(Device-dependent bitmap)依赖于具体设备,这主要体现在以下两个方面: DDB的颜色模式必需与输出设备相一致.例如,如果当前的显示设备是256色模式,那么DDB必然也是256色的,即一个像素用一个字节表示. 在256色以下的位图中存储的像素值是系统调色板的索引,其颜色依赖于系统调色板. 由于DDB高度依赖输出设备,所以DDB只能存在于内存中,它要么在视频内存中,要么在系统内存中. 11.3.1 DDB的创建 MFC的CBitmap类封装了DDB.该类提供了几个函数用来…
设备相关的位图(DDB)使用单一结构BITMAP结构描述.该结构的成员指定矩形区域的宽度和高度,以像素为单位;将条目从设备调色板映射到像素的数组的宽度;以及器件的颜色格式,在每个像素的颜色平面和位数方面.应用程序可以通过调用GetDeviceCaps函数并指定适当的常量来检索设备的颜色格式.请注意,DDB不包含颜色值;相反,颜色是依赖于设备的格式.有关详细信息,请参阅位图中的颜色.因为每个设备都可以有自己的颜色集,所以为一个设备创建的DDB可能在不同的设备上可能不会很好地显示.要在设备上下文中使…
第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(…
windows支持两种位图格式,DDB(device-dependent bitmap),DIB(device-independent bitmap).设备相关位图用于windows显示系统中,其图像格式与显卡格式兼容,因此显示速度很快.设备不相关位图定义了位图的文件格式,用于位图传输,由于其数据格式可能与显卡格式不一致,直接使用设备不相关位图显示图像时需要进行转换,因此显示速度较慢. 历史上显卡支持16色或者256色,分别使用4位或者8位表示一个像素颜色.在16色系统中,仅支持黑白灰,红绿蓝,…
设备无关位图即独立于设备的位图(DIB)与"Device-Dependent Bitmaps (DDB) 设备相关位图"相比,它不再依赖于具体的设备,从而更适合在不同的计算机之间传输和显示.它包含一个颜色表,颜色表描述像素值如何对应于RGB颜色值,其描述通过发光产生的颜色.因此,DIB可以在任何设备上实现适当的配色方案.DIB包含以下颜色和尺寸信息: 创建矩形图像的设备的颜色格式. 创建矩形图像的设备的分辨率. 创建图像的设备的调色板. 将红,绿,蓝(RGB)三元组映射到矩形图像中的像…
屏幕抓取程序的意思是将整个屏幕图显示在应用程序的用户区中,等价于截图.对桌面窗口的操作:首先得知道桌面窗口的宽和高,获取宽和高需要利用窗口的设备句柄,而获取设备句柄需要知道窗口句柄,这一系列的连串关系如下:窗口句柄——>设备句柄——>获取设备句柄属性(比如宽和高).(书本采用的一种方法,但至少也把这种种被需要的关系复习了一下,必须承认,初学需要重复很多次才能形成熟练意识) hwndDeskTop = GetDesktopWindow();// 获取桌面窗口的窗口句柄 hdcDeskTop =…
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)…
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  …
位图,亦称为点阵图像或绘制图像,是由称作像素(图片元素)的单个点组成的.这些点可以进行不同的排列和染色以构成图样.当放大位图时,可以看见赖以构成整个图像的无数单个方块.扩大位图尺寸的效果是增大单个像素,从而使线条和形状显得参差不齐.然而,如果从稍远的位置观看它,位图图像的颜色和形状又显得是连续的. 提到SVG,我想大多数人的第一印象是矢量缩放.是的,SVG是制作Logo.图标及按钮的理想选择.和位图不同,SVG可以在不失真情况下进行任意的缩放.同时,和传统Web字体不同的是,SVG可以使用多种颜…
1.位图使用(模糊)滤镜 //创建一个矩形区域的BitmapData var bmd:BitmapData = new BitmapData(80, 30, false, 0xefefef); //画个红色的矩形var rect:Rectangle = new Rectangle(20, 10, 40, 10); bmd.fillRect(rect, 0xFF0000); //找到红色矩形的右上顶点 var pt:Point = new Point(rect.left, rect.top); /…