欢迎来到天天文库
浏览记录
ID:14694082
大小:534.00 KB
页数:83页
时间:2018-07-29
《windows程序设计 位图和位图动画》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、位图和Bitblt位图是一个二维的位数组,它与图像的像素一一对应。当现实世界的图像被扫描成位图以后,图像被分割成网格,并以像素作为取样单位。在位图中的每个像素值指明了一个单位网格内图像的平均颜色。单色位图每个像素只需要一位,灰色或彩色位图中每个像素需要多个位。位图代表了Windows程序内储存图像信息的两种方法之一。储存图像信息的另一种形式是metafile。Metafile储存的就是对图像如何生成的描述,而不是将图像以数字化的图标代表。以后我将更详细地讨论,MicrosoftWindows3.0定义了一种称为设备无关位图(DIB:device-independentbitmap)。我将在下一
2、章讨论DIB。本章主要讨论GDI位图对象,这是一种在Windows中比DIB更早支持的位图形数据。如同本章大量的范例程序所说明的,这种比DIB位图更早被Windows支持的图形格式仍然有其利用价值。位图入门位图和metafile在计算机图形处理世界中都占有一席之地。位图经常用来表示来自真实世界的复杂图像,例如数字化的照片或者视频图像。Metafile更适合于描述由人或者机器产生的图像,比如建筑蓝图。位图和metafile都能存于内存或作为文件存于磁盘上,并且都能通过剪贴板在Windows应用程序之间传输。位图和metafile的区别在于位映像图像和向量图像之间的差别。位映像图像用离散的像素来处
3、理输出设备;而向量图像用笛卡尔坐标系统来处理输出设备,其线条和填充对象能被个别拖移。现在大多数的图像输出设备是位映像设备,这包括视频显示、点阵打印机、激光打印机和喷墨打印机。而笔式绘图机则是向量输出设备。位图有两个主要的缺点。第一个问题是容易受设备依赖性的影响。最明显的就是对颜色的依赖性,在单色设备上显示彩色位图的效果总是不能令人满意的。另一个问题是位图经常暗示了特定的显示分辨率和图像纵横比。尽管位图能被拉伸和缩小,但是这样的处理通常包括复制或删除像素的某些行和列,这样会破坏图像的大小。而metafile在放大缩小后仍然能保持图形样貌不受破坏。位图的第二个缺点是需要很大的储存空间。例如,描述完
4、整的640×480像素,16色的视频图形数组(VGA:VideoGraphicsArray)屏幕的一幅位图需要大于150KB(153600Byte)的空间;一幅1024×768,并且每个像素为24位颜色的图像则需要大于2MB的空间。Metafile需要通常比位图来得少的空间。位图的储存空间由图像的大小及其包含的颜色决定,而metafile的储存空间则由图像的复杂程度和它所包含的GDI指令数决定。然而,位图优于metafile之处在于速度。将位图复制给视频显示器通常比复制基本图形文件的速度要快。最近几年,压缩技术允许压缩位图的文件大小,以使它能有效地通过电话线传输并广泛地用于Internet的网
5、页上。位图的来源位图可以手工建立,例如,使用Windows附带的“画图”程序。一些人宁愿使用位映像绘图软件也不使用向量绘图软件。他们假定:图形最后一定会复杂到不能用线条跟填充区域来表达。位图图像也能由计算机程序计算生成。尽管大多数计算生成的图像能按向量图形metafile储存,但是高清晰度的画面或碎形图样通常还是需要位图。现在,位图通常用于描述真实世界的图像,并且有许多硬设备能让您把现实世界的图像输入到计算机。这类硬件通常使用电荷耦合设备(CCD:charge-coupleddevice),这种设备接触到光就释放电荷。有时这些CCD单元能排列成一组,一个像素对应一个CCD;为节约开支,只用一行
6、CCD扫描图像。在这些计算机CCD设备中,扫描仪是最古老的。它用一行CCD沿着纸上图像(例如照片)的表面扫描。CCD根据光的强度产生电荷。模拟数字转换器(ADC:Analog-to-digitalconverters)把电荷转换为数字讯号,然后排列成位图。携带型摄像机也利用CCD单元组来捕捉影像。通常,这些影像是记录到录像带上。不过,这些视频输出也能直接进入影像捕捉器(framegrabber),该设备能把模拟视频信号转换为一组像素值。这些影像捕捉器与任何兼容的视频信号来源都能同时使用,例如VCR、光盘、DVD播放机或有线电视译码器。最近,数字照相机的价位对于家庭使用者来说开始变得负担得起了。
7、它看起来很像普通照相机。但是数字照相机不使用底片,而用一组CCD来拦截图像,并且在ADC内部把数字图像直接储存在照相机内的内存中。通常,数字照相机与计算机的接口要通过串行端口。位图尺寸位图呈矩形,并有空间尺寸,图像的高度和宽度都以像素为单位。例如,此网格可描述一个很小的位图:宽度为9像素,高度为6像素,或者更简单地计为9×6:习惯上,位图的速记尺寸是先给出宽度。位图总数为9×6或者54像素。我将经
此文档下载收益归作者所有