用糖化血红蛋白图表解释释rle方法是如何运作的

(网吧勿用)
luobinhome
http://86181./
为了您更好的使用本网站,请您不要禁止javascript。
目前状态:
家园号:86181姓名:罗彬
设计师类型:其他个人会员
  10 October 2017  SunMonTueWedThuFriSat12345678910111213141516171819202122232425262728293031
图像知识基础
传统的电脑只能处理文字、数字,最多是简单的图形。近年来,随着电脑硬件技术的飞速发展和更新,使得计算机处理图形图像的能力大大增强。以前要用大型图形工作站来运行的图形应用软件,或是特殊文件格式的生成及对图形所作的各种复杂的处理和转换;如今,很普遍的家用电脑就完全可以胜任,我们可以轻易的使用PhotoShop、CorelDraw、3D MAX或是别的什么软件做出精美的图片或是逼真的三维物体,你甚至可以自己去做一个有趣的动画。&&&&& 在当今信息社会,以多媒体为代表的信息技术和信息产业的发展和应用对人类社会产生的影响和作用愈来愈明显,愈来愈重要。多媒体的发展和应用,极大地推动了诸多工业的相互渗透和飞速发展,逐步改变了整个人类社会的工作结构和生活方式。可以毫不夸张地说,多媒体产业的形成和发展,将不仅引起计算机工业的一次革命,也将影响人类社会发生一场巨大的变革。&&&&&& 我们知道,所谓多媒体,即多种信息媒介,通常包括以下几种:文本、图形、影像、声音、视频、动画。可以看出,多媒体的应用在很大程度当依赖于丰富多彩的图形和图像。也就是说,图形图像技术的飞速发展也将是必然趋势,掌握图形图像处理技术对一个计算机操作人员是必要的。&&&&&&& 计算机图形学是研究用计算机生成、处理和显示图形的一门科学。为了生成图形,首先要有原始数据或数学模型(如工程人员构思的草图、地形航测数据、飞机的,总体方案模型等),这些数字化的输入信息经过计算机处理后变成图形输出。&&&&&&& 图形从原始数据生成图象数据经过了一系列变换过程,每个变换过程都可能产生不同于输入数据的输出数据,这些数据需要按一定的结构进行组织,形成一系列描述图形数据的文件,我们把这类文件称为图形文件(也称为图形图象文件),而图象文件是描述图象数据的文件,它是图形文件的一种特例。&&&&&&& 在图形生成过程中有多种类型的数据,如模型数据、场景数据和图象数据等,因此,图形文件所描述的图形层次就不一样,这也是产生多种图形文件的一个重要原因。&&&&&&& 另一方面,在同一个描述层上,由于每种图形软件包使用自己的格式保存图形数据,随着图形应用软件包的不断增多,图形文件的格式也会越来越多,虽然国际标准化组织(ISO)为解决图形信息的共享问题,建立了一系列图形文件标准(如CGM),但是这些标准较难得到广大用户和厂商的支持,从而形成了目前这种多种图形文件共存的局面。图形文件有以下特点:(1)数据量大。由于现在数据获取手段日趋先进,可以得到的数据越来越复杂,数据量也增大。(2)结构性强。数据在本质上分为数字化的和模拟的两种。模拟信息可以转换为数字信息。数字系统中的最基本单位为位(bit),其他结构单位都以位为础。在较低层次上可以是“构造块”(如浮点数、整数和字符);在较高层次上可以是记录(如Pascal中)或结构(如C语言中),而图形文件就是由特定的结构或记录组成的。每种图形文件都按自己的方式组织图形信息,由于图形文件包含的数据量大,所以很多图形文件都使用一定的压缩算法来压缩图形数据。
&&&&&&& 上一节从广义上介绍图形图象文件概念,从本节开始将把主要笔墨放在图形图象文件的特例――图象文件上。因为本书主要讨论图象文件的显示与处理技术,所以后面除特殊需要外,一般不使用图形图象文件这一术语,而是使用图象文件这一术语。图象可粗分为两大类:位映象图象和向量图象。基于计算机的位映象图象是对电视图象的数字化,它易于描述真实景物,真实世界中的景物可以用扫描仪生成图象文件并在计算机上显示。而向量图象易于表达艺术家设计的图形。这两者在表达方式上的不同。&&& 为简单起见,可把位映象图象看成是一点矩阵(简称点阵)。对于单色位映象图象或打印机输出的图象而言,矩阵中的每个点要么为l要么为0(1代表黑,0、代表白或相反)。在图形学中,把矩阵中的点称为象素(pixel)。位映象图象根据彩色数分为以下四类:单色图象、具有4~16种彩色的图象、具有32~256色的图象和256色以上的图象。也可把这四类图象称为单色图象、低彩色分辨率图象、中等彩色分辨率图象和高彩色分辨率图象。在讨论位映象图象的彩色时,通常用保存彩色信息所需的位数来定义彩色数。把单色图象称为是1位图象,这是因为图象中的每个象素仅需1位信息;把16色图象称为是4位彩色图象,这是因为图象中的每个象素需4位信息;要表示16种不同的彩色,象素必须由4位组成,由于4色图象和8色图象不太常用,所以一般也就用不到“2位彩色图象”和“3位彩色图象”。在PC机上,另一种常见的图象是256色图象,也称8位彩色图象。256色图象有照片效果,比较真实。另外一种具有全彩色照片表达能力的图象为24位彩色图象。由于彩色的种类很多,每个象素需24位,使得彩色图象所需的存储空间很大。
&&&&&&& 最初设计计算机只是为了处理数字和字符,但在近几年,即使是最便宜、最简单的机器,也能够同样便利地以一种形式或另一种形式处理图形,随着真实图形能力的到来,不管是界面的,还是应用程序的;不管是基本的还是高级的,都将引起一场重要的文化变革。目前还很少有人能欣赏这种变革,部分原因是很少有人接受过训练,也很少有人熟悉有效地使用这种强有力的、从本质上来说完全不同的可视媒体的方法。&&&&&&& 计算机把图形显示为一组二维的点,这些点叫象素,象素(Pixel)曾经是“pictiure element”的缩写,之后,它依靠自身的作用而成为一个独立的词纳入了词典。&&&&&&& 在计算机里,可视信息是以一个大的比特阵列的形式存放的,每个比特对应一个微小的电子门,门可以打开,也可以关闭(事实上,半导体门的两个状态分别对应一个高电平和一个低电平,从软件的角度看,只有两个状态,通常称之为1态和0态)。图像上的每一个点对应计算机存储器内的一个或多个比特,以这种方式存储或显示的图像叫位图图像,或简单地称之为位图。通过改变计算机缓冲区各位的状态,可以控制显示的内容。显示硬件解释显示缓冲区的内容,从而在显示器屏幕上显示图像。
&&&&&&& 屏幕的水平和垂直解析度对所显示的图像质量有很大的影响。下面的这张图片给出了在各种标准解析度下的同一幅图像,这四幅图片的解析度依次为:32位全彩色、16位真彩色、256色和16色。从理论上讲,分形中的带状卷须应连续下降到白色区域,在这个过程中将变得无限小。但实际上,由于解析度的限制,这些卷须消失了,最后变成了随机的灰色细毛的海洋,解析度越高,消失之前的卷须越细。&&&&&&& 视频硬件的颜色解析度对图像质量的影响也是非常大的(即使处理的不是全彩色图像,而是1、4、16或256个灰度的单色图像)。虽然是具有相同的水平和垂直解析度的各幅图像,但是,具有256个灰度等级的图像比黑白图像要真实的多。
&&&&&&& “256”究竟意味着什么?256种颜色有哪些?每种颜色又放在哪里?接下来的将介绍彩色图形编程的各种细节,但目前,还必须掌握基于调色板的显示方式的基本原理。&&&&&&& 当使用各种不同的显示模式时,软件把一个颜色编号放在相应于象素的计算机内存。在双色模式中,颜色编号只能取两个值:0或者1,通常0代表黑色,1代表白色(如果所用的显示器使用的是有颜色的荧光粉,则可能是淡黄色或绿色)。由于每个象素的颜色仅依赖于一个信息位,因此,这种颜色也叫“1比特”颜色。&&&&&&& 对于更复杂的颜色,要经过两步才能真正显示屏幕上每个象素的颜色。首先,软件把颜色编号放在相应于象素的计算机内存。在16色模式中,颜色的编号可以是0~15间的任一个值,由于存储16种不同的颜色需要4个信息位,所以16色模式叫“4比特”模式。同样,在256色模式中,每个象素颜色编号的取值可高达255,要存储象素的颜色需要8个信息位。为了确定每个颜色编号所对应的真实颜色,显示硬件要参考调色板的颜色值。调色板是一组独立于存储各个象素颜色编号存储区的视频存储区。调色板中的颜色值指定了屏幕上象素的红、绿、蓝三个基色的混合比例,屏幕上的每个象素对应一个颜色号。不同的象素的颜色对应不同的调色板颜色值。&&& 存储调色板上每种颜色所需的准确位数取决于显示硬件,例如,在EGA调色板上的每种颜色值有6个比特,2比特用于红色,2比特用于绿色,2比特用于蓝色。&&&&&&& 颜色在经过图象处理软件的数字化处理之后,转变成了数字的形态,即由一个一个的位(Bit)所组成,位中存储颜色的情况如下:1位 2种颜色2位 4种颜色4位 16种颜色8位 256种颜色16位 65536种颜色24位 1677万种颜色32位 1677万种颜色和256级灰度值36位 687亿种颜色和4096级灰度值&&&&&&& 通常所称的标准VGA显示模式是8位显示模式,即在该模式下能显示256种颜色;而高彩色(HI COLOR)显示是16位显示模式,能显示65536种颜色,也称64K色;还有一种真彩色(TRUE COLOR)显示模式是24位显示模式,能显示1677万种颜色,也称16M色,这是现在一般PC机所能达到的最高颜色显示模式,在该模式下看到的真彩色图象的色彩已和高清晰度照片没什么差别了。&&&& 在图象文件的存储格式中也是以位来存储颜色的。由于图象文件的存储 格式非常多,这里仅以TRUEVISION公司设计的32位TGA文件格式为例简单说明,在该种格式文件中,32位被分为两部分,其中24位是颜色部分,另外8位是ALPHA值部分,记录着256级灰度,用以加强真彩色的质量。
&&&&& 计算机屏幕上的每一个象素对应内存中的一个数值,显示硬件解释该数值,以产生实际的色点。屏幕上象素的点数及颜色值决定了显示的解析度。屏幕上水平方向的象素个数叫水平解析度,每一列上象素的个数叫垂直解析度,给定时间内在屏幕上能够同时显示的颜色数叫颜色解析度。尽管从技术上来讲,解析度既指尺寸解析度又指颜色解析度,但通常所指的是水平和垂直方向的解析度(例如,虽然从技术上讲,颜色数是解析度的一部分,像“每一种视频适配器都有最大的解析度和最多的颜色数”这样是不准确的短语。&&& 从支持720×438的双色模色的大力神图形适配器,到支持的256色或更高模式的Super VGA卡,每一种视频适配器都有所支持的最大解析度及颜色数。大多数的图形硬件都支持几种不同的显示模式,从而能够为某一应用程序在速度、解析度和颜色数之间找到一种最佳的平衡。随着图形硬件种类的不断增加,记住不同图形卡和不同模式下的解析度和颜色数并不是一件容易的事,各种不同的和PC兼容的图形卡所支持的显示模式是不尽相同的,好的显示卡会支持很高的分辨率。解析度高于VGA的卡通常划归于界限还不明确的Super VGA类(或简称为SVGA和SVG)。一些权威机构以及大多数的PC杂志,坚持把SVGA专用于800×600的模式,而用Super VGA、SVGA或“beyond SuperVGA”指或更高的解析度模式。&&&&&&& 由于Super VGA的范围很广,分类也不明确,很多用户难以找到支持自己特有的SVGA的软件,而程序员则更难写出支持大量SVGA卡的软件。幸运的是,在八十年代后期,成立了视频标准联合会,以设计急需的Super VGA标准。1989年,该显示硬件和图形软件联合会推出了主要基于800×600的标准,但许多工业界的领导人士提出批评,认为这一标准在出台之前就已过时。1990年,VESA推出了一个重全面的标准,以此作为回应,该标准包括了上至的256色模式。 VESA标准包含一个编程SuperVGA的软件接口,通过一个特殊的驱动程序,现行卡制造商可以支持这种界面,而不需要改变其硬件结构。因此,可以找到支持几乎所有Super VGA卡的通用软件,不管这种软件是四年前的,还是新的,Super VGA解析度的VESA标准模式号都是一致的。&&& 请注意,目前几乎所有的Super VGA视频卡都能模仿传统的计算机图形适配器(Graphics――CGA)、增加图形适配器(Enhanced――EGA)和视频图形陈列(Video Graphics Array――VGA)的低解析度模式,某些Super VGA卡也模仿大力神图形适配器(Hercules Graphics Adapter,也叫做HGA或单色图形),低性能的大力神标准在非常便宜的PC中的应用也还可见。
&&& 图形一般指用计算机绘制(draw)的画面,如直线、圆、圆弧、矩形、任意曲线和图表等;图像则指由输入设备捕捉实际场景画面产生的数字图像。数字图像通常有位图和矢量图形两种表示形式。&&& 位图图象 (bit-mapped-Graphics.Raster Graphics),以记录屏幕上图象的每一个黑白或彩色的象素来反映图象。每一个象素有特定的位置和颜色值。位图适用于具有复杂色彩、明度多变、虚实丰富的图象,例如照片、绘画等。使用位图格式的绘画程序叫做位图绘画程序,例如Adobe Photoshop 。 它以与屏幕相对应的存储位来记忆和处理图象,把图形作为点的集合,这是绘画程序应用的典型文件格式。位图图象依赖于解析度,放大和以高清晰度打印时,容易出现锯齿状的边缘。象素的多少决定文件的大小和图象细节的丰富程度。位图图像由数字阵列信息组成,用以描述图像中各像素点的强度与颜色。位图适合于表现含有大量细节(如明暗变化、场景复杂和多种颜色等)的画面,并可直接、快速地在屏幕上显示出来。位圈占用存储空间较大。一般需要进行数据压缩。为了便于位图的存储和交流,产生了种类繁多的文件格式,常见有PCX、BMP、DLB、PIC、GIF、TGA和TIFF等。
&&& 矢量图形(Vector Graphics)的特点是,绘画程序中物体定位、形体构造建立在以数学方式记录构件(图形元素)的几何性质上,例如直线、曲线、圆形、方形的形状和大小。它不是记录象素的数量,在任何解析度下输出时都同样清晰。例如Adobe Illustrator就是使用这种格式的软件。矢量格式更适合于以线条物体定位为主的绘制,通常用于计算机辅助设计(CAD)和工艺美术设计、插图等。使用物体定位绘画程序可以把特定物体作为一组,单独改变线条的长度,放大或缩小原形,移动和重叠。但是在屏幕上显示的时候,由于监视器的特点,矢量图也是以象素方式来显示的。&&& 矢量图形是用一组指令集合来描述图形的内容,这些指令用来描述构成该图形的所有直线、圆、圆弧、矩形、曲线等图无的位置、维数和形状。在屏幕上显示矢量图形要有专门软件将描述图形的指令转换成在屏幕上显示的形状和颜色。用于产生和编辑矢量图形的程序通常称为Draw程序。这种程序可以产生和操作矢量图形的各个成分,并对矢量图形进行移动、缩放、旋转和扭曲等变换;使用矢量图形的一个很大的优点就是容易进行这类变换。但是,用矢量图形格式表示复杂图像(如人物或风景照片)的开销大大,因此矢量图形主要用于表示线框型的图画、工程制图、美术字等。绝大多大多数CAD和3D造型软件使用矢量图形作为基本的图形存储格式。&&& 矢量图的优点也就在于它在任何解析度下输出时都同样清晰。我们看下面这幅图片:左边的是矢量图文件,右边的是位图文件。虽然现在看起来好像位图文件的色彩更饱满一些。但经过放大后它就会显示出色点,而矢量图经过放大后,清晰度不会产生太大变化,这一点,我们在教程里作以了详细的介绍。
在前面的介绍中,我们分别提到过几种不同的分辨率, 初次进行数字图象的处理时,分辨率(Resolution)这个概念经常令人感到混乱。在这里谈一下图象处理中常见的也是最重要的几种分辨率类型:位分辨率、设备分辨率、网屏分辨率以及图象分辨率。&&& 1.屏幕分辨率屏幕分辨率就是用户在屏幕上观察图象时,所感受到的分辨率。一般屏幕分辨率是由计算机的显示卡所决定的。例如标准的VGA显示卡的分辨率是640×480,即宽640点(象素),高480点(象素)。至于较高级的显示卡,通常可以支持800×600或是点以上。&&& 2. 位分辨率(Bit Resolution),又称位深,是用来衡量每个象素储存信息的位数。 这种分辨率决定了每次在屏幕上可显示多少种颜色。一般常见的有8位、24位或32位颜色。&&& 3. 设备分辨率(Device Resolution),又称输出分辨率,指的是各类输出设备每英寸上可产生的点数,如显示器、喷墨打印机、激光打印机、热式打印机、绘图仪分辨率。这种分辨率通过DPI(Dot Per Inch)这个单位来衡量。一般来讲,PC显示器的设备分辨率在60~120DPI之间,而打印机的设备分辨率则在180~720DPI之间,数值越高,效果越好。&&& 4.n网屏分辨率(Screen Resolution),又称网屏频率,指的是打印灰度级图象或分色所用的网屏上每英寸的点数。这种分辨率通过每英寸的行数(epi)来标定。&&& 5. 图象分辨率(Image Resolution), 指的是图象中储存的信息量,这种分辨率又有多种衡量法,典型的是以每英寸的象素数(ppi)来衡量。图象分辨率和图像尺寸一起决定文件的大小及输出质量。该值越大,图象文件所占用的磁盘空间也越大,进行打印或修改图象等操作所花时间也就越多。图象分辨率以比例关系影响着文件的大小,即文件大小与其图象分辨率的平方成正比。如果保持图象尺寸不变,将其图象分辨率提高一倍,则其文件大小增大为原来的四倍。例如原图象的文件大小为841KB,图像分辨率为72ppi,保持图像尺寸不变,用图象处理软件提高其图象分辨率到144ppi,这时文件大小变为3364KB。&&& 图象分辨率也影响到图象在屏幕上的显示大小。如果在一台设备分辨率为72DPI的显示器上将图象分辨率从72ppi增大到144ppi(保持图象尺寸不变),那么该图象将以原图象实际尺寸的两倍显示在屏幕上。&&& 一般来说,降低图象分辨率后再增大是不明智的。由于降低图象分辨率时将删除图象中的一些原始信息,然后在增大其分辨率时又要重新计算丢失象素的色值以便增加信息,这时重新增大分辨率的图象就没有原来的高分辨率图象效果好了。&&& 6.打印机分辨率打印机分辨率又称为输出分辨率,所指的是打印输出的分辨率极限,而打印机分辨率也决定了输出的质量。打印机分辨率越高,除了可以减少打印的锯齿边缘之外,在灰度的半色调表现上也会较为平滑。打印机的分辨率通常是以dpi(每英寸中所包含的点数)来表示。目前市场上的打印机当中,24针的针式打印机的分辨率约为180dpi;而喷墨式打印机的分辨率可达300,甚至720dpi,不过如果真要打印这么高的分辨率,所使用的也必须是特殊的纸张;所以喷墨式打印机比较适合于个人作彩色输出使用。除了喷墨打印机之外, 激光打印机的分辨率又要高一筹。较老的机型通常在300D360dpi之间,近来由于超微细碳粉技术的成熟,使得分辨率可以达到600甚至1200dpi,作为专业的排版输出这已经绰绰有余了。&&& 在专业输出上,也经常会使用到热升华彩色打印机作为输出设备,其分辨率的极限约为300点。&&& 7.扫描仪分辨率扫描仪分辨率指的是扫描仪的解析极限,表示的方法和打印机分辨率相当类似,一般也以dpi来表示。不过正如前面所指出的那样,这里的点是指样点,与打印机的输出点是不同的。扫描仪的分辨率在纵向是由步进马达的精度来决定的,而横向则是由感光元件的密度来决定的。&&& 一般台式扫描仪的分辨率可以分为两种规格,第一种是光学分辨率,指的是扫描仪的硬件所真正扫描到的图象分辨率,目前市场上的产品级可以达到800-1200dpi以上。第二种则是输出分辨率,这是通过软件强化以及内插补点之后所产生的分辨率,大约为光学分辨率的3-4倍左右。所以当你见到一台分辨率号称2400dpi的扫描仪时,不要大惊小怪,先要看清楚这是光学分辨率还是输出分辨率。&&& 在扫描一幅数字图象之前所作的操作,将影响到最后图象文件的质量和使用性能。而其中很重要的一步就是确定扫描分辨率,它取决于图象将以何种方式显示或打印。如果扫描图象用于640×480象素的屏幕显示,则扫描分辨率不必大于一般显示器屏幕的设备分辨率,即一般不超过120DPI。但在大多数情况下,扫描图象是为以后在高分辨率设备上输出而准备的,此时就需要采用较高的扫描分辨率。如果图象扫描分辨率过低,图象处理软件可能会用单个象素的色值去创造一些半色调的点,这会导致输出的效果非常粗糙。反之,如果扫描分辨率过高,则数字图象中会产生超出打印所需要的信息。例如采用高于打印机网屏分辨率两倍的扫描分辨率产生的图象,在打印输出时就会使图象色调的细微过渡丢失,导致打印出的图象过于呆板无味。&&& 那么,应如何正确地设置扫描分辨率呢?一般情况下应使用打印输出的网屏分辨率、扫描和输出图象尺寸来计算正确的扫描分辨率。其步骤如下:1)用输出图象的最大尺寸乘以网屏分辨率,然后再乘以网线数比率 (通常情况下为2∶1) ,得到该图象所需象素总数。2)用象素总数除以扫描图象的最长尺寸即得到最优扫描分辨率。用公式来描述即为:图象扫描分辨率=输出图象最长尺寸×网屏分辨率×网线数比率/扫描图象最长尺寸例如,扫描图象宽2英寸、高3英寸,需要打印机输出图象的宽为5英寸、高为6英寸,使用打印机的网屏分辨率为150epi,网线数比率为2∶1。图象扫描分辨率=6×150×2/3=600DPI上面我们介绍了这几种主要的分辨率,最后请读者在进行图形图象处理和应用程序设计时加以注意:虽然分辨率越高,所呈现出来的图象质量也越高,但这是要付出代价的,分辨率越高,则图象文件就会越大,所占的内存也会越多。
&&& 人类信息交流中,最丰富的信息流是视觉媒体。凡是通过视觉传递信息的媒体,都属于视觉类媒体。它包括图形、图象、文字以及一切形象化的视觉信息形式。视觉类媒体特性研究,涉及光度学、色度学、图形学、数字信号处理和人类视觉胜利心理特性等,认识和运用其基本特征,是视觉媒体处理的各种技术之基础。作为一名专业的图形设计员来说,了解视觉媒体特性是必不可缺的。下面我们将从几个不同的侧面来分析和说明视觉类媒体的主要特性。一、可见光谱与光度学参量人眼所看到的客观存在的世界,通常称之为景象。客观物体所发出的光线或是物体受光源照射后所反射、透射的光,在人的视网膜上成象,是一种自然的生理功能,它使人能借助视媒体去认识世界。近代科学的发展,特别是光电转换技术进步,使人类能够以各种方法来记录、处理、传输客观景象,如各类图片、照片、绘画、文稿、X光胶片等;不仅是获取和记录那些人眼可见的图象信息还可利用非可见光和其它手段成象,或利用适当转换装置将其变为人眼可视图象,例如红外成象、超声成象、微波成象等;科学技术使人的视觉能力逐步增强和延伸。从物理上讲,光线是电磁波的一种能量辐射形式。电磁波的主要多数包括:传播方向,所具能量,极化情况和波长。电磁波的频率范围很宽,根据波长不同,具有不同性质,包括无线电波、红外线、可见光谱、紫外线、X射线、宇宙射线等。可见光谱在电磁波中仅是很窄的一段,其波长在380至780毫微米之间,波长不同呈现不同的颜色,从紫、蓝、绿、黄到橙、红,连续地变化描述方法使用如下物理量:光源发光强度、光通量、照度、亮度,还使用视敏曲线反映人眼的感觉特性。二、三基色原理不同波长的单色光会引起不同的彩色感觉,然而同样的彩色感觉却可以来源于不同的光谱成分的组合,这个事实说明,光谱分布与彩色感觉之间的关系是多对一的,也说明在彩色重现过程中并不要求客观景物反射光的光谱成分,而重要的是人眼应获得原景物的相同的彩色视觉。实验证实,大自然中几乎所有颜色都可以用几种基色按不同比例混合而得到。三基色原理包括如下内容:1.选择三种相互独立的颜色,即不能以其中两种混合而得到第三种作为基色,将这三基色按不同比例进行组合,可获得自然界各种彩色感觉。如彩色电视技术中选用红(R)、绿(G)和蓝(B)作为基色,印染技术中选用黄、品红、青作为基色。2.任意两种非基色的彩色相混合也可以得到一种新的彩色,但它应该等于把两种彩色各自分解为三基色,然后将基色分量分别相加后再相混合而得到的颜色。3.三基色的大小决定彩色光的亮度,混合色的亮度等于各基色分量亮度之和。4.三基色的比例决定混合色的色调,当三基色混合比例相同时,色调相同。利用三基色原理,将彩色分解和重现,最终实现在视觉上的各种不同彩色,是彩色图象的显示和表达的基本方法。在各类彩色应用技术中,人们使用多种混色方法,但从本质上讲是两种: 相加混色和相减混色。相减混色利用了滤光特性,即在白光中减去不需要的彩色,留下所需要颜色。如印染、颜料等采用的相减混色。相减混色关系式如:黄色= 白色-蓝色,青色= 白色-红色,红色= 白色-蓝色-绿色,黑色= 白色-蓝色-绿色-红色。相加混色不仅运用三基色原理,还进一步利用人眼的视觉特性,产生较相减混色更宽的彩色范围。常用的相加混色方法有以下三种:?时间混色法:将三基色按一定比例轮流投射到同一屏幕上,由于人眼的视觉惰性,只要交替速度足够快,产生的彩色视觉与三基色直接相混时一样。这是顺序制彩色电视图象显示的基础。?空间混色法:将三基色同时投射到彼此距离很近的点上,利用人眼分辨力有限的特性而产生混色,或者使用空间坐标相同的三基色光的同时投射产生合成光,这是同时制彩色电视图象和计算机图象的显示基础。?生理混色法:利用两只眼睛分别观看两个不同颜色的同一景象,也能获得混色效果。三、视觉生理和心理规律关于人眼视觉机理、人脑从景物提取信息等问题,科学家们还难以作出清楚的解释。视觉媒体的重要性促使人类对此进行大量的实验研究,并在此基础上提出假说,总结规律。运用视觉生理和心理过程的这些实验规律,在彩色电视实用化和图象工程应用上许多成功实践,表明这些视觉规律经得起考验,对研究发展视觉类媒体具有极其重要的意义。人的眼睛是一个巧妙的器官,其视觉能力是令现代科学技术工作者惊叹的。现将主要规律概括如下:1.视觉调节力通过改变晶体的折射率,人眼可调节视距;依靠视细胞和瞳孔的调节,眼睛能适应非常宽的亮度范围,所能感受亮度上、下限之比为l000:1。控制眼球运动的肌肉有六种,使眼睛能自发的或反射性的,还有非自发的运动参与,扩宽视野或观察视媒体细节,具有更好的临场感受和恰当的扫描方式。2.视觉暂留性眼睛的另一个重要特性是视觉惰性,即光象一旦在视网膜上形成,视觉将会对这个光象的感觉维持一个有限的时间,这种生理现象叫做视觉暂留性。对于中等亮度的光刺激,视觉暂留时间约为0.05至0.2秒。视觉暂留性事实上是近代电影与电视的基础,因为运动的视频图象都是运用快速更换静态图象,利用视觉暂留性而在大脑中形成图象内容连续运动感觉的。光栅扫描技术、计算机动画设计也利用了视觉暂留性,精确安排视觉暂留时间。 3.视觉锐度眼睛分辨景物细节的能力叫视力,又叫视觉锐度(Visual Acuteness)。眼睛分辨景物细节的能力有一极限值,若以人眼对被观察物体相邻最近两点的最小视角为θ来表示,则视力定义为该θ的倒数。θ以角分为单位,这与医学中视力定义一致。视力与下述因素有关:人的视网膜上光敏细胞间物理距离决定人眼分辨率的极限,当景物成象在黄斑区,分辨率最高;当亮度和对比度过低,视力下降;当亮度过高,视力不会增加,甚至因“眩目”而降低。人限对彩色分辨率低于对亮度分辨率,而且对不同颜色构成的彩图细节的分辨率也不同。4.亮度辨别力人眼在比较两个强弱不同亮度时,有较好的判断力,对亮度变化过程敏感。对于不同亮度的背景,人能察觉到的最小亮度差别也不同。人眼分辨亮度的能力与背景亮度有关,也即对比灵敏度不同。对比度C定义为:C=Bmax/Bmix。Bmax和Bmix是重现图象或景物时的最大和最小亮度。只要保持该C常数,就可实现人眼亮度分辨的重现。 5.空间频率响应在人眼视力范围之内,对于图象上不同空间频率成分具有不同的灵敏度。实验表明,人眼对中频响应较高,对高、低频的响应较低,因而视觉上会显出马赫带效应,即亮度突变处明显增强。这时人眼判读特定目标有利。6.适应性及对比效应人眼通过自身的适应性调节,摄取视觉空间的信息及其变化状态。具体适应性规律表现在以下几方面:明暗条件变化下的眼适应,亮适应(即由暗到亮变化)时,几秒钟就能分辨出景象的明暗和颜色,其过程约在3分钟内达到稳定。暗适应(即由亮到暗处)时,几分钟才能分辨景象,约45分钟才稳定,过程要长些。
&&& 大多数的输入设备都产生位图。主要的例外情况是定位设备,如数字化仪和鼠标,它们仅产生向量数据,常用位图输入设备有扫描仪(彩色或单色)、图象捕获板及传真机。应用程序事实上决定了数据的文件格式,而不是输入设备的文件格式,例如Paint程序使用鼠标进行输入但仍然产生位图文件。扫描仪传输位图信息,但复杂的图形艺术程序可能将它转换成向量格式。大多数情况下文件格式的类型(位图或向量)要与输入设备相匹配。&&& 扫描仪是最常见的输入设备,现在扫描仪对有些格式都可用且功能很强,较典型的便宜的扫描仪是单色的,有2-D256级阴影,分辨率在每英寸60-400点之间(dpi)。有时选择低分辨率(dpi)的扫描仪,用软件来抖动图象,这样也能获得较多的灰度,许多单色扫描仪也有彩色偏差,例如红色不敏感或绿色不敏感,因此当扫描一彩色图象时,某些彩色就不能记录。除了单色扫描之外,还有具备较高空间分辨率、较大彩色深度、有较多彩色的扫描仪。并且,对多达24位彩色的设备来讲本书中提到的大多数位图、打印机或图形元文件格式就足够了。说到底,空间分辨率和彩色深度的发展很快,如果还要加色彩学和光度学的数据,则最好使用TIFF或Postscript,它们可以具有彩色深度、分辨度、光度学和色彩学的数据。&&& 传真机是一个越来越常见的扫描和重建图形方法,一般说来,这种图象的数据由CCITT标准定义,包括数据压缩。像TIFF或PostScript这样的文件格式支持这些标准,因此很容易获取传真数据,对传真传输而言,许多传真机都模仿一般的打印机,因此也接受像Hewlett-packard的PCI文件格式。&&& 视频输入现在不太常见,但随着多媒体和其他应用的发展它会越来越常用,现在的多媒体应用中一般使用位图格式,如Trilevision的Targa,Amiga的IFF/LBM和CompuServe的GIF等。高速帧速率的多媒体应用特别要求效率和压缩比。它们要根据电视工业的标准进行画图。数据文件或数据流说明一直飞速发展,在众多格式中,只有JPEG能进入这个高性能的领域。&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
& 返回到上面
&&& 图形设备和系统
[ 主页 ]&& [上一层]
--------------------------------------------------------------------------------
&&& 大多数的输出设备都使用位图,而PostScript打印机(它使用向量数据和位图数据)及所有的绘图仪是例外。&&& 点阵打印(包括激光打印机)是最常用的输出设备。其本质是位图设备,但是,如果它们提供内嵌的解释器,如PostScript或HPGL,则可把打印机当成是向量设备。大多数打印机都有它本身的数据格式或工业标准格式(如PCT)。不包含解释器的打印机一般都能提供快速输出和较低的开销。彩色打印机包括简单的彩色色带点阵打印机、彩色喷墨打印机和彩色激光打印机。高性能的打印机不仅具有自己的格式而且还需要在应用中有定制的驱动程序或者支持彩色PostScript。&&& 绘图仪与点阵打印机类似,一般只接收符合厂家规定格式的数据。许多绘图仪已采用HPGL标准,要输出到绘图仪的应用(如CAD程序等)可以产生HPGL输出,还有一些可以阅读HPGL格式的文件。
&&& EGA卡是通过VLSI(超大规模集成电路)实现的,它拥有丰富的、灵活的图形功能,为图形应用的开发提供了有力支撑。(1)显示模式。表中列出了EGA卡的图形显示模式。表中可以看出EGA最多可提供16种彩色,最大分辨率为640×350。模式6是CGA的最高分辨率模式,它支持的屏幕分辨率水平为640个象素,垂直为200个象素,但是只有两种彩色。模式4和5是很普通的CGA图形模式,显示的分辨率是水平320象素,垂直为200象素,彩色有4种,每个象素为2位。模式0dh的分辨率为320×200,彩色种类为16,每个象素用4位保存。模式0eh不是CGA或MDA的兼容模式,但它提供了更多的彩色。模式0fh是EGA卡独有的,它的分辨率为640×350象素。模式10h所支持的分辨率与模式0fh一样,但它提供16种彩色。
&&& 位映象图象可以是显示卡在图形模式下显示的任何图形画面。下面就以显示在屏幕上的图象为例进行讨论,在讨论时假走图象文件所保存的图象刚好可显示在显示器上。当一幅显示在EGA图形卡上的图象,在显示时是一幅彩色图象,打印后变成单色图象。当然如果用户使用CGA图形卡来显示这幅图象,那么只能显示一部分,原因是CGA图形卡的分辨率只有640×200象素,而EGA图形卡的分辨率为640×350象素,当然,如果把这幅图象用VGA卡640×480分辨率显示,那么图象只能充满屏幕的上面部分,下面部分为空白。&&& 由于EGA卡的分辨率为640×350象素(模式0fh),一个屏幕总共有640×350=224,000个象素,显示器的屏幕数据保存在内存中,位于内存高区,图象数据的保存和程序或数据保存的方法类似,都是作为8位字节串。在单色图象中,每位对应于一个象素,这祥每个字节就包含8个象素,上面这幅图象所需的存储空间为224,000/8=28k字节。由于上面这种图像是用位映射到象素上的,所以也称这类图象为位映象图象(bitmapped image)。&&& 下面介绍把EGA卡上的图象保存到文件中的方法(这种文件显然就是我们所指的图文件)。EGA卡的屏幕数据保存在段A000H中,把该段中的28K字节拷贝到文件中即可,可用下面的程序段来完成这个任务:FILE * fp;if ( (fp = fopen (" SCREEN. BIN" , " wb”)) ! = NULL ) {kk1}fwrite (MK_FP (0Xa200 , 0) , 1 , 28000 , fp ) ; fclose ( fp ) ;} else printf("Error in creating file" ) ;&&& 上面这个程序片段很简单,由于只有28K字节的数据,程序执行速度也会很快,但是它的效率并不高,原因在于源图象中有大片空白,也就是说图象中有很多白色区域,没有必要把它们都放到图象文件中,当图象很大时,如果彩色再很多,那么图象文件必然要占据大量的存储区。
EGA卡是一种彩色能力及分辨率都属于中等的图形卡,在其中引人了调色板概念,使得可用的颜色总数比同时可显示的颜色数要多得多。当然彩色总数由每种颜色在调色板寄存器中的位数来决定。VGA卡比EGA卡具有更强的彩色功能,同时显示的彩色可达256种。VGA卡与EGA卡类似,但EGA用的是数字显示接口,而VGA卡用的则是模拟显示接口。下面简单介绍VGA图形卡所支持的显示模式。上表是VGA图形卡所支持的图形显示模式,位于模式10h以前的模式与EGA卡的对应模式一样,这使得本来在EGA卡上运行的程序也可在VGA卡上运行。模式11h支持的是VGA卡的最高分辨率,水平方向为640个象素,垂直方向为480个象素,但只支持2种彩色,这种模式下显存的开始地址为A000:0000。模式12h也支持VGA卡的最高分辨率,但它具有16种彩色。对彩色图形应用程序而言,这是一种常用显示模式。模式13h中,VGA卡提供256种颜色,这种模式是VGA卡的特有模式,分辨率为320×200象素,工作在这种模式下的VGA卡提供的颜色种类最多。
SuperVGA 产品在体系结构上和标准的VGA 卡有所不同,每一种SuperVGA卡的制造商都在其产品的体系结构上作了一些扩充,以适应新的显示模式,并且具有一些新的特点。下面介绍SuperVGA所提供的增强型图形模式。(1) 640×400,256色模式这是多种适配器支持的逻辑分辨率,它要求有256KB显存。这种模式的实现方式通常和VGA的13h模式很类似,所不同的是每一扫描行的象素数和扫描行数比模式13h高一倍。(2) 640×480,256色模式这种模式要求VGA卡具有512K显存。(3) 800×600,256色模式这是用于大多数廉价的多频显示器的最高分辨率模式,它也要求相应的卡有512K显存。(4) ,256色模式这是目前的SuperVGA图形适配器上所见的较高分辨率。这种模式要求768K的显存。(5) 800×600,16色模式此种模式需240K显存,此种模式和模式12h的实现方式类似。(6) ,16色模式这是SuperVGA产品中共有的较高分辨率,只有稍好的显示器才支持这种分辨率。上面介绍了多种增强的图形显示模式,每种SuperVGA产品所支持的图形显示模式不尽相同。
在EGA和VGA图形适配器中,可用两种方法表示彩色,一种是压缩象素法,另一种是彩色位平面法。在压缩象素法中,一个象素的所有彩色信息被压缩到字节中,如果字节中放不下,就要放到字中。(a)压缩象素法压缩象素法是在显示存储器中各个位平面各取一位,经过位运算后经显示卡显示在监视器上。(b)彩色位平面法在彩色位平面法中,把显示存储器分割成几个独立的存储位平面,每个位平面用于控制一种彩色成分,每一显示象素在每个位平面中占有1位位置。根据用来复制彩色的介质的不同,彩色可以用两种基本方式中的一种进行表示:一种是增色系统,另一种是减色系统。当彩色图画被印在纸上时,它们是用通常叫做CMY的彩色系统实现的。CMY中的C表示cyan(青蓝),M表示megenta(品红),Y则表示yellow(黄)。实际上,正确的叫法应是CMYK,K表示black(黑)。减色合成法中的三原色是青蓝――一种适中的蓝色、品红――一种相当普遍的红颜色和纯黄色。用户也许曾在现实世界中见过这些颜色的样品。激光打印机可用减色合成法打印彩色,它们的颜色就是用这些术语表示的。这种模型对视频显示器就不适用,因为视频显示器本身不是白的,它们是黑的,就是说在其沉寂状态它根本不发射任何光。显象管发出的任何光都被加到黑色上,这样,在计算机屏幕上生成颜色的方法和纸上所做的恰好相反,这叫做增色合成法,它的基色是红、绿、蓝。要在计算机屏幕上显示彩色图形,必须采用某种机制使得每个象素能够决定在显象管的扫描束照亮它时需要多少百分比的红、绿和蓝光。实现这一功能最易想到的办法是使每一个象素有三字节的相关信息,每一个字节对应一个基本增色的百分比。该方法有许多不足,其中一个典型的问题就是:一个具有EGA图形模式的屏幕大小的图象需要0.75MB以上的存储空间,该图象的磁盘文件即使是用基于复杂串的压缩技术也需要相当大的存储空间,这样的一个屏幕更新起来速度非常慢。显然这种方法是不实用的。按这种方法构造的视频显示器可以一次同时用一千六百种不同彩色来产生图象,但是屏幕的更新速度是一必须着重考虑的因素,这个问题不解决,我们只好舍弃上述的显示器构造方法。
计算机技术发展到今天,以其不可抗拒的魅力获得了越来越广泛的应用,CAD/CAE应用程序、适用于互联网的3D应用程序、Internet广播技术、3D游戏以及能够提供卓越影音效果的DVD技术等这些3D图形密集型应用程序日渐成为计算机在各行业及家庭应用的主流,提供快速的三维图像生成速度。性能更高、视觉效果更逼真、更富娱乐性以及价格更加合理的个人电脑平台,形成当今用户迫切追求的目标。这些主流技术的应用均以三维图像处理技术的应用作为核心。由于各专业用户及家庭用户对声、色、效的追求,使得作为图形处理核心的三维图像处理技术理所当然地成为推动未来一代可以与视窗兼容的图像处理平台发展的原动力,这一平台将为个人电脑用户提供前所未有的逼真的立休效果及卓越的运算性能。因此,要了解未来的计算机技术,就必须先了解三维图像处理的技术。三维图像处理过程由创建三维模型及执行几何运算开始。一个完整的三维图像处理过程可分为物理运算、几何转换。剪切及光效、三角形设定和像素渲染四个阶段,其中需要进行大量的浮点运算(包括物理实体,几何转换、剪切、光效,以及三角形设定)和整数运算(包括三角形设定和像素渲染)。在图形渲染方面,图形加速卡厂商已获得了很大的进步, AGP图形加速卡的问世。更快的内存、更加适用于三维图像处理的应用接口(API)如Directx和OpenGL的出现,大大提高了处理复杂整数运算密集型过程的速度,但对于3D图像处理过程中大量浮点运算密集型过程的处理则需要由中央处理器完成。而目前的情况是,中央处理器的数据处理速度无法与图形加速卡的处理速度匹配,从而减慢了数据传输速度,因此在图像处理的前端阶段即形成了一个拖慢整体三维图像处理速度的瓶颈。如何解决这个瓶颈问题,成为目前各处理器生产厂商迫在眉睫的问题。
还是在大行其道的时候,对显示卡的要求是插上显示器能亮就成;到了时代,只要进得去WIN31,放得了VCD就足矣;这时偶尔听说过3D加速卡,也在心中不以为然他说:3D卡,那是什么东西?1996年奔腾流行,3D游戏在市场上开始出现,但人们正对多媒体感兴趣,关注的是CPU,是好声卡,显示卡也就继续被冷落在一边,但3D卡的先头部队已经上市。到了1997年上半年,随着几个3D游戏的发布及人们对游戏的“新认识”,加之各媒体的炒作和Virge芯片的热销,3D时代在某些人的心目中已经来临;下半年,E3大展开幕,其中最风光的莫过于3D游戏和3Dfx,一块好显卡的重要性在人们心中也提高到了前所未有的高度。此时,人们才愿意花大价钱配好显卡,而不象以前只用百把来块钱打发了事。以后的芯片之争无疑会集中在3Dfx Voodoo2、Matrox G200、Intel i740 、 3DLabs Permedia 2、ATI RagePro Turbo和NVIDIA RIVA 128 and RIVA ZX这几款上。3Dfx Voodoo2我就不多罗唆了,大家想必已经从各种渠道知道了它的消息; Matrox G200则要讲几句:它是Matrox继Millennium II与Mystique 220之后推出的新东东,力图挽回Matrox现在的颓势;Intel i740是Intel进军3D芯片界的第一弹,也是Intel一个“大阴谋”的开始; 3DLabs Permedia 2则是3Dlabs公司继permedial后的新一代产品;ATI Rage Pro Turbo是ATI在原有的Rage Pro上的增强新一代;NVIDIARIVA 128 and RIVA ZX实际是同一种东西,多出的ZX意味着RIVA 128有了8MB的显存,可支持AGP×2模式了。每种芯片都有自己的优势,也都各有高招。比较显示芯片的具体性能从以下几个方面来做个比较:1. 2D性能在2D方面起主要作用的是芯片的RAMDAC与显示内存,这两项对显示的分辨率、颜色数与刷新率都有大影响。虽然说现在用户对2D性能的重视程度远不如以前,但2D性能的提升就如CPU速度的提升一样,与以前不可同日而语。现在的用户大部分时候都不必等着显示卡工作,而是显示卡等着用户来输入。所以单纯的测试软件所显示的数值已经不象以往那么能说明问题。2. 3D性能3D性能是检验现在显示芯片最重要的一个标准,也是本文讨论的重点。由于Vedoo系列只支持全屏3D加速,所以我们在这里说的3D性能其实是专指游戏中的3D性能3. 3D质量单纯地从速度上来确定一种芯片的好坏现在似乎没有说服力。现在的3D游戏不是光有速度感就玩得下去的,对画面的质量有些人似乎还看得更重要一些。现在的36卡市场的火爆毋需多言。老一代的3D芯片由于性能同Voodoo相比差了不止几倍,早先被捧上天的S3 virge之流已经被划入了淘汰品的行列。Voodoo系列百分之七、八十的市场占有率现在是无人能出其右,但3Dfx也并不能高枕无忧。可以预见,下半年的3D市场一定会出现群雄混战的格局,好戏已经开始了。作为消费者的我们除了坐山观虎斗之外,剩下的就是捂着钱包偷笑了。
3DNow!TM技术的出现,为扫除计算机三维图像前端处理速度的瓶颈提供了一套理想的解决方案,为当今的x86处理器架构开创了截然不同的三维运算及多媒体运算能力。该技术与当前的x86软件兼容,并且无需为操作系统提供支持,同时所有专为3DNow!TM技术而设计的应用方案均可运行所有操作系统。因此,3DNow!技术所带来的是一项根本的技术性突破。从最近Ziff-Davis实验室的3D WinBench 98基准测试中不难找到来用3DNow! TM技术的AMD K6(r)-2处理器与Pentium II处理器的测试结果。在测试中,两者均采用相同的配置为基准,并采用微软即将推出的Directx 6.0。从测试结果来看, AMD K6(r)-2系统的三维性能显著胜出Pentium II系统,配置AMD K6(r)-2/300处理器的系统得分为1110分,而同等时钟频率的Peniium II 300系统只获得961分,即使是pentium II 400系统也仅仅得到ll20分的成绩。而采用Winstone(r)98测试的主流商用软件性能评分中,AMD K6(r)-2/ 300与Pentium II 300则不分伯仲,分获215和216分。面对如此的高性能和相对低的价位,3DNow! TM技术一经推出即成为业界多家软件厂商注目的焦点,其中许多著名厂商的软件作品如Epic MegaGames的Unreal、Rage的Incoming、Microsoft的Baseball 3D、Imagine Studios的Ares Rising、Viewpoint DataLals的LiveArt 98等软件均已进行优化以便适用于3DNow!技术,这些软件现已出现在IT市场上。其他一些公司的相应优化软件也将于年内推出。预计在1998年年内,3DNow! TM技术掀起三维图像处理应用的狂潮已成定势。3DNow! TM技术是AMD公司为消除传统的图像处理过程中进行浮点运算和多媒体应用程序的瓶颈而研究开发的一套创新的指令集,是该公司旨次为业界提供的三维图像处理创新技术,它带来了全新水平的三维图形性能及逼真的图形效果,开创了与三维图形加速卡同步运算的先河。该指令集共包含21个指令,可最大程度地支持称为“单指令多数据”(SIMD)的浮点运算。针对三维图像处理的早期阶段集中的大量浮点运算指令,该技术相应备有一组全新的单精度浮点指令,它们可加速物理及几何运算,舒缓瓶颈的问题,使中央处理器能够在速度上赶上图形加速卡,加快多媒体应用程序的运算过程,大幅提高三维图像运算性能及逼真度。由于采用3DNow!TM技术的AMD K6(r) -2处理器的微架构可以支持在图像处理过程中全面执行两条指令,即每一时钟周期执行高达两个3DNow! TM指令,同时每一指令又可执行两个单精度浮点运算,从而AMD K6(r)-2处理器在每一时钟周期内可执行四个浮点运算(包括加、减、乘)。此外,3DNow! TM技术还包括一个特定的SIMD整数指令,有关指令集可以执行SIMD整数运算。数据预取以及更快的MMX至浮点交换等功能,方便为象素动作提供补偿,从而提高了MPEG解码能力。AMD K6(r)-2/ 333的浮点性能最高可达1.333 Gigaflops,较pentium II 333及400的浮点性能优胜很多,后两者的浮点性能分别为0.333 Giganops和0.4 Gigaflops。即使是AMD K6(r)-2/300的最高浮点性能也可达到1.2 Gigaflops,比代表目前Intel公司最高性能的Pentium II 400的浮点性能还高三倍,这正是3DNow! TM技术带来的技术飞跃。
显示卡技术的关键是显示总线技术,到现在显示总线技术已经发展了ISA、VESA、LOCAL BUS、PCI和AGP技术4代。据统计,前三种结构的显示卡技术在97年升始走向没落,主要是用户对显示技术的要求随着3D显示技术和操作系统的技术突飞猛进的发展而提升。在PCI技术雄霸桌面PC四年之后,INTEL推出了崭新的AGP显示技术,这种技术可以加速大多数的3D绘图、影像与2D绘图工作。AGP显示卡与AGP新式专用插槽,将PC绘图工作从繁忙的PCI总线中解放出来,搭建了一条高速直通公路。AGP技术推出的直接受益者是3D加速能力的飞速提高,AGP可以让专门为其设计的3D游戏、软件与应用程序描绘出更加真实和快捷的效果,AGP可以解决目前从网络卡到音效卡都抢用PCI通道的拥挤状况。AGP技术有两个核心内容:一是使用PC的系统主内存作为显示卡上显示内存的扩展延伸,这样可以大大增加显示内存的潜在容量;二是使用更高的专用总线频率66MHz、133MHz甚至266MHz,这样可以极大提高数据的传输率(AGP在66MHz时是266MB/s, PCI的33MHz只有133MB/s)。目前流行的AGP主要有两种方式:一是DMA方式,在这种方式下,显示卡不使用PC系统主内存做显示内存的扩展。这时显示卡只是利用高速的AGP总线来提高数据传输率。二是DIME(Direct Memory Execute)方式,就是在显示卡上的显示内存的容量不够的时候,将系统主内存当作内存使用。将许多耗费显示内存的3D操作在系统内存内完成,这样在系统价格基本不变的前提下大大提高PC整机3D机能。未来的几个月内随着100MHz的高速SDRAM的普及和价格的回落,系统主内存的技术差距进一步缩小,这一切为DIMERR的使用创造一块良好的土壤。个人电脑用户现在购买AGP显示卡时机已经成熟。PII技术的成熟和快速普及,AGP将可以取代PCI成为最普遍的显示绘图技术。而利用APG技术的电脑整机并不会使新PC的售价提高多少,这样促进用户可以用有限的钱,选择市场上最好的产品组合成性能价格比最好的个人电脑。随着INTEL 440BX这一类支持100MHz系统频率的主机板控制芯片在98年Q3的普及,使得系统总线的带宽进一步增大。100MHz系统频率的条件下AGP技术充分利用系统总线的优势可以完美发挥出来。6月26日微软公司推出WINDOWS 98操作系统,在这种操作系统中完整支持AGP技术,使得在此操作系统的环境中显示效果AGP显示卡比PCI显示卡要好很多。许多WINDOWS 95的用户同样可以通过升级WINDOWS95的版本到OSR2.1,安装微软Directx5.0后一样可以完美体验到APG技术的好处。针对APG增强技术设计的软件表现3D 的效果远比PCI显示卡的效果好。事实上,AGP 希望能淘汰PC 游戏里过于简单的3D 场景,执行相同的游戏是AGP 加速增强版本的某些视觉效果的改变令人印象深刻。在使用AGP 增强版本的G-police 测试的结果发现,原本PCI版本上的爆炸效果边缘出现的令人讨厌的锯齿不见了,而原本静态的广告变成绚丽的动态画面。
到现在为止,您应该已经掌握计算机图形图象处理的一些基本知识,在这里我们将以几个小的C语言程序段向您讲解一下如何用编制程序来进行图形调用和图象处理。下面我们先来看一下这个利用VGA图形卡页面功能的程序:include&graphics.h&main()int graphdriver=DETECT,int i,j,k;initgraph(&graphdriver,&graphmode,"");cleardevice();setactivepage(0);rectangle(100,50,200,150);setactivepage(1);circle(150,750,50);for(i=1;i&=20;i++){kk1}setactivepage(0);for(j=1;j&=30000;j++)i=j;setactivepage(1);for(k=1;k&=30000;k++)i=j;}getch();closegraph();}接下来,我们以Turbo C语言来看一下如何实现对图形模式的控制:Turbo C中提供了四个模式控制函数:int far getgraphmode (void);返回现行图形模式的值;void far restorecrtmode(void);恢复屏幕在图形初始化前的模式;void far setgraphmode(int mode);设置系统图形模式并清屏幕;void far getmoderange(int graphdriver,int far *lomode,int far *hmode);获得一个图形驱动程序可设置的图形模式的范围。经过调用以上函数,可实现使显示器暂时离开图形模式进入文本模式,进行文本输出,然后不经过initgraph再返回图形模式。#include &graphics.h&#include &stdio.h&main(){kk1}int g_driver,g_mode,lo,g_driver=CGA;//设置CGA的图形驱动程序 getmodararge(CGA,&lo,&hi);//获得CGA的图形模式范围printf("CGA supporting modes range form %d to %d.\n",lo,hi);//显示CGA显示模式范围initgraph(&gdriver,&lo,"c://tc");//初始化为CGA CO模式bar3d(100,30,130,150,0,0);//画一实心方块getch();g_mode=getgraphmode();//获得现行图形模式restorecrtmode();//返回图形初始化前的显示模式printf("Now is text mode, press any key back to graphics mode.\n");getch();setgraphmode (gmode);//再回到图形模式rectangle (50,30,100,130);//画一长方形getch ();//等待敲一键closegraph();//关闭图形系统}上述程序是针对CGA显示器的,根据本章第一节中所列出的各种显示器及其显示模式的表格,可以很方便地将此程序修改为适用于其它显示器模式的程序。&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& 返回到上面
&&& 图形文件的显示
[ 主页 ]&& [上一层]
--------------------------------------------------------------------------------
&&& 当白光通过棱镜折射时,它的色彩成份分离形成色彩排列,这是白光的光谱特点,并且色彩范围人眼都能看见的。形成光谱的色彩顺序是红色、橙色、黄色、绿色、蓝色、青色和紫色,按首字母缩写成ROYCBIV(最初把青色包括进去似乎为了使这个缩写能发音)。因为在光谱色彩中,基本色是红色、绿色和蓝色,所以光的色彩模式归结成RGB模式,和以前一样进行讨论。&&& 因为非白色光是有色的,会漏掉总光谱中的口部分,所以每种非白色光都折射自己本身的光谱。尽管白色在CYM模型中是色素的缺乏(被画布白色代替)。但在RGB模型中黑色则是各种光的缺乏(被认为是真正的黑色)。三种基本光混合形戍白光。当三种基本光与其它每一种光混合时,形成淡青色、洋红色和黄色以及CMY颜色模式的原颜色。&&& 对于充分理解和掌握物质是如何在各种光的条件下显示的,光和颜色间的差别是一个重要概念,它们是对立的,然而又互辅相成。一个主模式补充其分模式。RGB发射光,而CYM反射光。如果没有光的照射,就不能看见物体的颜色,而有色光必须照在不透明的表面上才能看见。混合所有色彩光形成白色,而混合所有色素色彩形成黑色。最后,RGB通过增加进行混合,而CYM通过减少进行混合。&&& 光的三个重迭聚光点说明了这个基本模式。这里,色彩中没有黑 是由红、绿、蓝三种原色产主的。由于光的混合,形成了淡青色,洋红色和黄色。同时观察这两种模式,可见,RGB模式是CMY模式的对立物,就像每一种主体部分都是另一种的从属部分。 &&& 利用红(Red)、蓝(Blue)和绿(Green)种基本颜色,可以配制出绝大部分肉眼能看到的颜色。像彩色电视机的显像管(CRT)以及计算机屏幕,都是以这种方式来混合出各种不同的颜色效果。 RGB模式的混色原理是以颜色加法来混合出各种不同的颜色。
&&& 白色光也是由三中原色:红、绿、蓝混合而成的。光谱中原色互补色是青蓝色、品红色和黄色。所以用这三种原色构成所有颜色。这三种原色构成了CYM色彩模式。在CYM色彩模式中,红色是品红色与黄色混合而成,蓝色是青蓝色与品红色混合而成的,而大多数人所认为的黄色总是带点品红色。CYM色彩模式步流行的原因之一是这些深色的原色是不自然的,而且不容易得到。自然界中真正的原色是很少的。在理论上,利用C、M、Y三种基本色便可以混合为黑色,但是由于考虑到印刷油墨混合的误差,所以有必要再加进一定量的黑色。但使用CYM的一个重要的难度是原色混在一起会产生黑色,而不是棕色。这就是为什么画家可以通过混合RGB中强烈的相邻色彩得到接近黑色的原因。 &&& CMYK是由青(Cyan)、品红(Magenta)、黄(Yellow)以及黑(Black)四种基本色调配合成各种不同的颜色,一般应用在印刷输出的分色处理上面。&&& CMYK与RGB所不同的地方,除了组成的基本色不同之外,RGB的合成是采取颜色加法,而CMYK则是采用颜色减法。
&&& Lab模式是一般人较为陌生的色彩模式,这个模式的色彩定义石油国际照明委员会CIE所制定的,也是目前所有模式中含钙色彩范围最广的模式。它的特色是对色彩的描述完全采用数学方式,与系统及设备无关,因此它可以无偏差地在系统与平台间进行转换。 &&& Lab模式是以一个亮度分量L(Lightness)――范围是 0-100;以及两个颜色分量a与b来表示颜色。a分量是由绿色演变到红色――范围是 -120-120;而b分量则是由蓝色演变到黄色――范围是 -120-120。&&& 人眼所能看见的光、色之范围较为广泛,由计算机的彩色屏幕按RGB模式或由彩色印刷品按CMYK模式所表示出来的光与色,只不过是其中的一部分。而且像RGB、CMYK和Lab三种模式表现的颜色范围也不相同。
&&& HSB模式是利用色相(Hue)、色浓度(Saturation)以及亮度(Brightness)三种基本向量来表示一种颜色。* Hue:色调,沿着色调环从0度(纯红)转变为其他颜色,再转回360度(纯红)。&&& * Saturation:色彩的饱和度。0 %时为灰色,100 %时为纯色。&&& * Brightness:亮度,0 %为黑色,100 %时为白色。所谓的色相,指的是不同波长的光谱,例如红色和绿色便是属于不同的色相。&&& 色浓度则是指颜色的深浅,例如同样是红色,也会因为浓度的不同而分为深红或浅红。至于亮度则指的是颜色明暗的程度。
在灰度图象中,每一个象素都以8位元表示,因此可以表现出256种层次。如果将纯黑和纯白之间的层次等分成256个层次,就成了256灰度模式,可以用来模拟黑白照片的图像效果。所以每一个位元都是介于黑色与白色之间256种灰度的一种。灰度图象中只有灰度而没有彩色,所以除了与彩色有关的命令之外,几乎所有的功能都可以支持灰度图象。虽然黑白照片中的层次是连续的,同时层次远远超过了256个,但就一般应用美术的要求而言,256个层次已足以将黑白图像表现得相当完美了。
黑白图象是1位元的图象,也就是每个象素都由一个位元来表示,不是黑色就是白色。它所占用的内存最小,但所支持的功能也最受限制。例如黑白图象并不能够表现出渐变的色彩。当图象从灰度转换黑白时,用户可以在对话框中选择转换成为什么样子黑白图象。黑白模式无法表现层次复杂的图像,但可以制作黑白的线条图(Line Art),或是特殊的二层次高反差图像。注意,其他的彩色图象并不能直接转换成为黑白图象,必须先将它转换成为灰度图象,然后才能将其转换成为黑白图象。
在RGB或是CMYK等彩色图象中,每一个象素都可以表现出完整的颜色信息,不过所占用的内存也相当大。而经过统计,一张RGB图象当中所真正使用的色彩,往往多只有几百种甚至只有几十种。所以聪明的工程师就想到,如果以这些所使用到的颜色建立一张颜色表(Color Table),而每一个象素当中的数值则表示为这个颜色表中的某个位置,那么岂不就可以节约相当多的内存吗?举例来说,一个24位RGB的图象,转变成为256色(8位每象素)的索引图象之后,所占用的内存容量只有原来的三分之一,这就是所谓的索引色的由来。不过将图象转换成为索引色模式之后,所必须要注意的有两件事,第一是索引色图象所支持的功能比起RGB、CMYK图象来要少得多,因为索引色图象并不包含连续的色调变化所以许多的滤镜和渐变功能,多半不支持索引色图象。其次如果索引色所能表现的颜色数目,远少于原来图象中的颜色种类时,便会在原本平滑的图象表面,造成边缘效应,从以下的图象当中可以发现,随着位数的减少,边缘效应也愈加明显。所以除非特殊需要或是万不得已,否则我们还是用RGB、Lab或是CMYK模式来处理图象。
一般工业上的标准是以CMYK四种油墨来印刷彩色出版物。但我们身边的许多印刷物,例如名片,往往只需要用到两种油墨的颜色就可以表现出彩色效果。如果并不需要全彩色的印刷质量,这时我们便可以考虑利用双色印刷来节省成本。另一方面,虽然我们在图象当中每一种油墨都可以指定256种不同的灰度阶层,但是在实际的印刷机上,机器所能分辨的压力强弱却不超过50种。所以当我们要印出灰度要求较细密的图象时,也可以利用双色印刷,指定其中一种油墨为黑色,另一种则为较淡的灰色,以此印出灰度层次较密的出版物。除Duotone模式之外,用户也可以选择Monotone(单色)、Tritone(三色)以及Quadtone(四色)等不同的方式,以产生特殊的印刷设计效果。
在彩色显示设备所能显示的彩色数目有限的情况下,要显示由多种彩色的图像就需要使用其他技术,其中常用的一种就是彩色抖动。彩色抖动的工作原理与黑白抖动的工作原理相同。它们的基本思想是通过牺牲空间分辨率来换取灰度或彩色分辨率。假设用4个象素表示一个大象素,那么如果原来只有两种彩色,现在就有多种彩色。当然这里的多种彩色是一种“错觉”,因为其他彩色是两种原色的象素按一定规则排列而得到。
行程长度压缩原理是将一扫描行中的颜色值相同的相邻像素用一个计数值和那些像素的颜色值来代替。例如:aaabccccccddeee,则可用3a1b6c2d3e来代替。对于拥有大面积,相同颜色区域的图像,用RLE压缩方法非常有效。由RLE原理派生出许多具体行程压缩方法:1.PCX行程压缩方法:该算法实际上是位映射格式到压缩格式的转换算法,该算法对于连续出现1次的字节Ch,若Ch&0xc0则压缩时在该字节前加上0xc1,否则直接输出Ch,对于连续出现N次的字节Ch,则压缩成0xc0+N,Ch这两个字节,因而N最大只能为ff-c0=3fh(十进制为63),当N大于63时,则需分多次压缩。2.BI_RLE8压缩方法:在WINDOWS 3.0、3.1的位图文件中采用了这种压缩方法。该压缩方法编码也是以两个字节为基本单位。其中第一个字节规定了用第二个字节指定的颜色重复次数。如编码0504表示从当前位置开始连续显示5个颜色值为04的像素。当第二个字节为零时第二个字节有特殊含义:0表示行末;1表示图末;2转义后面2个字节,这两个字节分别表示一像素相对于当前位置的水平位移和垂直位移。这种压缩方法所能压缩的图像像素位数最大为8位(256色)图像。3.BI_RLE压缩方法:该方法也用于WINDOWS 3.0/3.1位图文件中,它与BI_RLE8编码类似,唯一不同是:BI_RLE4的一个字节包含了两个像素的颜色,因此,它只能压缩的颜色数不超过16的图像。因而这种压缩应用范围有限。4.紧缩位压缩方法(Packbits):该方法是用于Apple公司的Macintosh机上的位图数据压缩方法,TIFF规范中使用了这种方法,这种压缩方法与BI_RLE8压缩方法相似,如1c1c1c1c压缩为:831c,显而易见,这种压缩方法最好情况是每连续128个字节相同,这128个字节可压缩为一个数值7f。这种方法还是非常有效的。
霍夫曼编码压缩也是一种常用的压缩方法。是1952年为文本文件建立的,其基本原理是频繁使用的数据用较短的代码代替,很少使用的数据用较长的代码代替,每个数据的代码各不相同。这些代码都是二进制码,且码的长度是可变的。如:有一个原始数据序列, ABACCDAA则编码为A(0),B(10),C(110),D111),压缩后为100 。 产生霍夫曼编码需要对原始数据扫描两遍,第一遍扫描要精确地统计出原始数据中的每个值出现的频率,第二遍是建立霍夫曼树并进行编码,由于需要建立二叉树并遍历二叉树生成编码,因此数据压缩和还原速度都较慢,但简单有效,因而得到广泛的应用。
LZW压缩技术比其它大多数压缩技术都复杂,压缩效率也较高。其基本原理是把每一个第一次出现的字符串用一个数值来编码,在还原程序中再将这个数值还成原来的字符串,如用数值0x100代替字符串"abccddeee"这样每当出现该字符串时,都用0x100代替,起到了压缩的作用。至于0x100与字符串的对应关系则是在压缩过程中动态生成的,而且这种对应关系是隐含在压缩数据中,随着解压缩的进行这张编码表会从压缩数据中逐步得到恢复,后面的压缩数据再根据前面数据产生的对应关系产生更多的对应关系。直到压缩文件结束为止。LZW是可逆的,所有信息全部保留。算术压缩方法算术压缩与霍夫曼编码压缩方法类似,只不过它比霍夫曼编码更加有效。算术压缩适合于由相同的重复序列组成的文件,算术压缩接近压缩的理论极限。这种方法,是将不同的序列映像到0到1之间的区域内,该区域表示成可变精度(位数)的二进制小数,越不常见的数据要的精度越高(更多的位数),这种方法比较复杂,因而不太常用。JPEG(JointPhotographicExprertsGroup联合摄影专家组)JPEG标准与其它的标准不同,它定义了不兼容的编码方法,在它最常用的模式中,它是带失真的,一个从JPEG文件恢复出来的图像与原始图像总是不同的,但有损压缩重建后的图像常常比原始图像的效果更好。JPEG的另一个显著的特点是它的压缩比例相当高,原图像大小与压缩后的图像大小相比,比例可以从1 %到80~90 %不等。这种方法效果也好,适合多媒体系统。这里我们来看一下这个压缩Gif文件的LZW算法:/* LZW.Cvoid PackGif(FILE *fp,char far *ImageData,unsigned int width,unsigned int depth,int BitsPerPixel){kk1}register int i,j;unsigned char ThisCchar far *bitmap = ImageD
index = 1;pixmask = 0remcnt = 0;rem = 0;InitCnt = 0;First_Char = BitsPerPCLEAR = 1 && BitsPerP . //256,16,or 4EOI = CLEAR + 1;oldcode = -1;memset( CTfirst,0,4096 );memset( CTlink,0,8192 );memset( CTnext,0,8192 );
PackInit( CLEAR );PutCode( fp,CLEAR );
for( i=0;i&i++ ){kk1}for( j=0;j&j++ ){kk1}ThisChar = bitmap[j];code = LookupCT(oldcode,ThisChar);if( code != -1)oldcode =else{kk1}PutCode( fp,oldcode );oldcode = (int) ThisC}if (nextcode&nextlim){kk1} if (reqcnt==12){kk1}PutCode( fp,oldcode );PutCode( fp,CLEAR ); /* Position */PackInit(CLEAR); }else {kk1} reqcnt ++;nextlim = nextlim && 1;if (reqcnt==12) nextlim--;} } }bitmap = farptr( bitmap,(long)width ); }PutCode( fp,oldcode );PutCode( fp,EOI );Flush( fp );fputc( 0,fp );fputc( 0x3b,fp );}&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& 返回到上面
&&& 图形文件的格式
[ 主页 ]&& [上一层]
--------------------------------------------------------------------------------
&&& 近年来,个人计算机和工作站上的图形工具比几年前的巨型机上的图形工具还要多,计算机图形学的领域也随之扩展。过去,当人们编出越来越多的图形应用程序后,需要把图像文件存储下来以作日后的处理或显示之用。在缺乏广为接受的标准的情况下,每个应用程序开发者都提出文件格式以支持其应用程序。从八十年代初以后,官方的边准组织开始提出首批通用的图形子程序和图形文件,以促成文件代码在不同的应用程序和硬件上的可移植性。随之而来的结果试图性格是数量的急剧膨胀,在数以百计的应用程序中所使用的格式由几十种之多。例如在著名的图形处理软件――PhotoShop 5.0中用到的图像文件格式、子格式就共有三十多种。简单举几种格式来说:PCX、MacPaint、Tiff、Gif、GEM、IFF/ILBM、Targa、BMP/DIB、WPG、PostScript、Sun、PBM、XBM、JPEG、FITS、DXF、HP-GL、LotusPic、PCL、WMF、EPS、CGM、RIB、FLI/FLC、MPEG、PDF……。对于如此繁杂的文件格式,我们每不可能接触或掌握全部的格式。在本章中,我们对最常用的文件格式进行分类归档,对读者作以详细的介绍。下面让我们先来看一下最常见的文件格式――BMP文件。
1.优点 在Microsoft Windows下得到广泛使用,支持稀疏的位元映射。2.缺点 除了Microsoft Windows外,无法在其他环境下使用。3.变体 Windows 3.0还可以从OS/2 Presentation Manager l.x中读取BMP文件。4.综述 BMP格式又称为DIB,也就是Microsoft Windows设备无关位元映射(Microsoft Device Independent Bitmap)文件,Bmp可以包含每个象点l位元、4位元、8位元或24位元的图形。其中1、4和8位元图形有彩色映像,而24位元图形则是全彩(TrueColor)。
一、文件头所有的DIB文件含有一个共同的文件头。bfOffBits字段含有从文件头的最后(字节14)到图像数据位开始之间的字节数,这样就能方便地跳过位图头。文件位图格式的两种变体可以通过查看位图头的第一个字(文件偏移字节14)来区分如果该字为12,则是一个os/2 格式文件,如果为40,则是Windows 3.x格式文件。二、Windows的位图头文件图后面为位图头和可选的彩色图像。位图头的结构有时称作BITMAPINFO,而带有色彩对应表的则为BITMAPINFOHEADER。三、色彩对应表使用每个像素1、4或8位的图像必然有一个色彩对应表。彩色映像的大小一般为2、16或256个表项,但如果图像不需要一个色彩全集,则表项可以更少些。如果biClrUsed字段为非零,则它包含使用的色彩数目,同时它也是色彩对应表的表项数目。如果字段为0,则色彩对应表为全部大小。24位图像没有色彩对应表,这种图像是直接RGB色彩。biClrUsed字段可以是非零,以提供一个建议的色彩大小。由于显示设备可能不具备图像所需的那么多色彩,因此色彩对应表中的表项应该让最重要的色彩排列在先。 biClrImportant字段如果不为零,则指出了对于重新生成好的图像而言,有多少种颜色是重要的。色彩对应表每个表项都有四个字节。四、Windows的位图数据位图数据紧跟在色彩对应表的后面。数据可以是不压缩的,如果要压缩,则4位和8位的图像可以使用一种RLE压缩方法。位从逻辑角度看是每次存入一行(没有压缩时从物理角度看也是如此),每行被填充到一个四字节边界。每个像素一位的位图每个像素只有一位,每字节有8个像素。字节中的最高位对应于最左边的像素。每个像素四位的位图,没有压缩的图像是每个字节有两个像素,高四位为最左边的像素,且每行填充到一个四字节边界。压缩过的图像使用一种RLE编码格式,由一系列组组成。有三种类型的组:重复组、文字组和特殊组。重复组由两个字节组成。第一个字节是像素计数值,第两个字节是一对象素,该组用第一个字节表示像素数,第两个字节为2个像素。例如,十六进制字节:05 24表示像素2 4 2 4 2文字由一个零字节、一个像素值字节和文字像素字节组成。像素计数值必须至少为3(只有一个或两个像素时可以用重复组编码)。文字像素用0填充到一个偶数值。例如,十六进制字节:00(注意填充到偶数字节)表示像素 1 2 3 4 5特殊序列00 00表示一行的结束,特殊序列00 01表示位图的结束,特殊序列00 02 xx yy是一个位置增量,说明把图像向右走xx个像素和向下走yy个像素。每个像素8位的位图没有压缩的图像为一个字节一个像素,每行填充到四字节边界。压缩过的图像使用RLE编码格式,后者由一系列的组组成。组有三种类型:重复组、文字组和特殊组。重复组由两个字节组成,第一个字节为像素计数值,第两个字节为像素值。例如,十六进制字节:05 24表示像素 24 24 24 24 24。文字组由一个零字节、一个像素计数值字节和文字像素字节组成。像素计数值必须至少是3。文字像素用0填充到偶数字节数。例如,十六进制字节:78 9A00(注意填充到偶数字节)表示像素 12 34 56 78 9A特殊序列与四位的位图一样。每个像素二十四位的位图。每个像素为3个字节,顺序依次为红、绿和蓝的值。每行用0填充到四字节的边界。以上我们介绍了bmp文件的格式,下面我们看一下如何用C++语言来实现bmp文件的读取,下面是例程bmpread中的DisplayBitmap函数:BOOL CMainWindow::DisplayBitmap(HDC hDC, HBITMAP hBitmap,int X, int Y, DWORD RopCode){kk1}// Create compatible display contextHDC hCompatDC = CreateCompatibleDC(hDC);
// Select bitmap into compatible display contextHBITMAP hOldBitmap = SelectBitmap(hCompatDC, hBitmap);
// Get dimensions of bitmapBITMAP BM;GetObject(hBitmap, sizeof(BM), &BM);
// Blast those bits to the screenBOOLresult = BitBlt(hDC, X, Y, BM.bmWidth, BM.bmHeight,hCompatDC, 0, 0, RopCode);
// De-select the bitmapSelectBitmap(hCompatDC, hOldBitmap);
// Clean up after we are doneDeleteDC(hCompatDC);
1、优点 提供足够的信息并很好地组织这些信息,使得许多不同的输出设备能够方便地交换图形,由于CompuServe网络的广泛流行,许多平台都支持GIF。CompuServe通过免费发行格式说明书来推广自己。GIF支持24位元彩色,由一个最多有256种颜色的调色板实现,图形大小最多是64K×64K个象点。GIF的特点,包括LZW压缩、多图形的定序、交错屏幕绘图以及文字重叠。2、缺点 现行的GIF版本不能多于256个24位元彩色,它没有为储存灰度或彩色校正数据作准备,也不能储存CMYK或HSI格式的数据。3、变体 GIF没有各种明显不同的模式(不像TIF或PCX那样)。尽管如此, GIF仍可以有许多的变化,一些变体和选择包括:?多图形?每个象点的元数?“逻辑”屏幕(围绕所有后续图形的一个图形平面)大小(用象点计算)?逻辑屏幕的横宽尺寸比?逻辑屏幕中图形的大小和位置?重叠文字的存在、大小和位置?图形序列―延时、使用者提示、交错的传输或者前一个图形的恢复。在早期GIF规范和当前规范之间存在一些变体(有两个GIF规范版本,一个在1987年,为“87a”,还有一个在1989年,为“89a”),新设计的应该使用最新版本,这里介绍的是最新版本。4、综述 它主要是为数据序列设计的一种传输格式,而不是作为文件的储存格式,换句话说,它具有顺序的组织形式(像TIF那样的储存格式,更普遍地使用随机组织形式,而不是顺序组织形)。这种顺序性质对图形没有什么实际影响,除了多个图形的顺序传输和显示这种专门的和特殊的情况。
了理解GIF,请记住它主要是为数据流而设计的一种传输格式,而不是作为文件的存储格式。换句话说,它具有顺序的组织形式(像TIFF那样的存储格式,则更普遍地使用随机组织形式,而不是顺序组织形式)。GIF有五个主要部分以固定顺序出现,所有部分均由一个或多个块(block)组成。每个块由第一个字节中的标识码或特征码标识。这些部分的颀序为:头块、逻辑屏幕描述块、可选的“全局”色彩表块(调色板)、各图像数据块(或专用的块)以及尾块(结束码)。下面是这些部分的内容:(1)头是一个块,它识别数据流为GIF,并指示恰当地解释后面的数据所需的最早版本的GIF解码程序(87a或89a)。(2)逻辑程序描述块定义了包围所有后面图像的一个图像平面的大小、纵横尺寸比以及色彩深度(它类似于产生图像的监视器屏幕)。它还指明后面跟随的是否为“全局”色彩表。(3)全局色彩表(如果存在)构成一个24位RGB元组的调色板(每种底色为一个字节)。如果后面的像没有其自己的“局部”调色板,那么全局色表就是缺省调色板。(4)后续数据作为“图形”或“专用”块出现。图形块典型地包含一个或多个位图图像,也可能是覆盖的文本。专用块或者包含一个专用应用程序码,或者包含一句不可打印的注释。(5)最后的尾块只是值为3B(十六进制)的一个字节,表示数据流已结束。注意:文件中的GIF数据流可能根本就不包含任何位图数据,这时,它只是要传输全局色彩表,作为没有自己调色板的后续数据流的缺省调色板。这里是一个显示Gif文件的C语言程序,下面的代码是例程gifshow中的主函数部分:main(argc,argv)char *argv[];{kk1}
if (argc&=1) {kk1}Sound();graphinit();ShowPIC( (char far *)bufptr, Width, Depth);
if (argc&=3) strcpy(filename, argv[2]);else {kk1}strcpy(filename+2, argv[1]);strncpy(filename, "X_", 2);if ((strchr(filename,'.')-filename)&8) strcpy(filename+8, ".GIF");}for (i=0; i&(1&&BitsPerPixel)*3; i++) pgh-&palette[i] &&= 2;packgif(filename, Width, Depth, BitsPerPixel, pgh-&palette, bufptr);Sound();
free(buffer);SetVGAMode(0x03);exit(0);return 1;}
1.优点 PCX是最老的,因此也是个人电脑软件中得到最为广泛使用的位元映射格式之一。当前的版本可使用24位元彩色,现实最多256色的调色扳或者全24位元的RGB,图形大小最多达64K×64K象点。数据是以运行长度编码(Run-Length Encoding)压缩。2.缺点 文件格式没有为储存灰度或彩色校正表留有余地,即不能储存CMYK (代表青色Cyaneous、紫红Magenta和黄色Yellow三种基本色,加上黑色black作对比)格式数据,也不能储存HSI格式数据[虽然有些Zsoft程序允许使用HSI (代表色调Hue、饱和度Saturetion和亮度Intensity)来调整彩色值]。它的运行长度压缩方法效率不高,尤其是对于扫描图形或视频信息图形。由于PCX的发展年代较老, PCX文件可以使用各种调色板技术,但其结果是大多数阅读程序不能处理所有可能的PCX格式图形。3.变体 PCX随着Zsoft产品的新版本而升级,在文件头(Header)中的一个序码确定了该文件所能使用的Zsoft产品的版本。其中版本0为基本单色(2色)或4色图形;版本2在版本0的基础上加上了16色图形,版本5又加上了24位调色板的256色和全24位RGB彩色。
一、概述PCX格式由三个部分组成,即文件头、位图数据(较新版本的)和一个可达256种色彩的调色板。其文件由固定128字节的文件头开始。它除了版本号以外,还包括被打印或扫描图像的分辨率(单位为每英寸点数)、大小(单位为像素数)、每扫描行字节数、每像素位数和彩色平面数。文件还可能包括一个调色板以及表明该调色板是灰度还是彩色的一个代码。文件的核心部分是位图数据。位图数据以类似于Packbits 压缩法的运行长度压缩形式记录,像素值通常是单字节的指针,指向调色板中的位置。如果版本号为5,则文件末尾处还有一个单一的位平面,一个RGB值的256色调色板三种底色各一个字节)。二、详解PCX 格式用于写是相对较简单的,但用于读就比较棘手,除非知道被解码图像的很多细节内容(如位深度和调色板等)。因此,以下的阐述都是基于最坏的情况,即读取一个其特性和年代都未确定的PCX文件,所有的数均是little-endian(Intel)格式,即LSB在先。字节0,Zsoft标志总是十进制值160,即十六进制A0。字节1,版本号,一定程度上不可靠的文件内容指南,见前面一节“变体”的讨论。字节2,编码到目前为止,总是为1。当前编码(压缩)方法只有一种,即在下面“位图数据),一节中讲述的运行长度法。字节3,每像素位数实际上是每个位平面的每像素位数,可能的值是1、2、4或8。字节4-11,图像大小图像大小由最小的和最大的极限给出。通常的下限是0。所有的极限均用16位无符号整数表示,单位为像素。图像大小可以这样计算:XSIZE=XmaxDXmin+l; YSIZE=Ymax-Ymin+l,单位为像素。字节12-15,以每英寸点数为单位的水平和垂直分辨率这两个16位的数字有点古怪,它们对于定义所存储图像不起任何作用,但是,当它们与图像大小组合起来加以考虑时,能产生出被扫描图像的原始大小,或者被打印图像的希望大小,以英寸为单位。字节16-63,头调色板这一字段看上去只适用于带有单一位平面、16种或更少的颜色以及版本号为2的文件(参见下面“解释数据的关键”口节)。使用时,调色板拥有16组三元组的单字节调色板值。字节65,色彩平面PCX图像可以是单色彩,也可以是多个色彩平面的(参见第一章)。头的这个字节给出色彩平面数,它是正确翻译PCX文件的关键。字节66,每行字节数实际是每个平面的每行的字节数―存储末压缩图像一个扫描行的一个色彩平面所需要内存字节数,它总是偶数。字节68,头调色板翻译1=彩色/单色;2=灰度。Paintbrush IV或Paintbrush IV PIus中不使用它。字节70~73,视屏屏幕大小,X和Y只被Paintbrush IV和Paintbrush IV PIus使用;并不是必不可少的,但是对于产生正确的外观比例(防止压缩型失真)可能有用。三、位图数据如果没有使用调色板,那么数据是实际的像素值;否则,它们是指向调色板值的指针。在后一种情况下,数据给出的是相对于所使用的调色板的起始处的偏移(比如在三字节的三元组值中,1=字节3)。当数据是实际的像素值时,它们按色彩平面和扫描行存储。例如,对于三种颜色红、绿和蓝(RGB),数据格式为:(第0行:)RRRRRR...GGGGGG...BBBBBB...(第1行:)RRRRRR...GGGGGG...BBBBBB...如果有两个平面,那么色彩是任选的;如果有三个平面,则颜色为RGB;如果使用四个平面,则它们是符合IBM CGA/EGA标准的单个位的平面:红、绿、蓝和光强(RGBI)。光强位只是给像素以一种名义上较高的亮度。当数据是指向某调色板指针时,它们就组成一个完整的图像平面(也就是说,它们不会分解成单独色彩平面)。然后数据按如下方式简单地编排(字符P代表各种指针值):(行0:)PPPPPP(行1:)PPPPPPPP的长度取决于深度,以每平面的每像素位数表示。例如,如果深度为4位,则P就是半个字节长。所有情况下,在扫描行之间都有编码隔断标志。但是,在一个扫描行中的色彩平面间没有编码隔断标志。同样,也没有分隔符可用来标识扫描行的结束(虽然一个扫描行可能是也可能不是用额外的零作为结束)。也就是说,在扫描行之间不会有行号(虽然这里写出来了),也不会有空字符、空格、回车、换行或其他的字符。不论要记录的是何种类型的位图数据,都使用同样的运行长度压缩方法,下面给出恢复算法(当前普遍使用的基于调色板的图像只有一个平面)。这里,请您先学习教程,具体了解PCX文件格式,然后来看一下下面这个――例程中由Gif文件转换PCX文件的程序中是如何编写PCX文件头:WritePcxHeader(FILE *fp,char *palette ){kk1}PCXHEAD
memset((char *)&h,0,sizeof(PCXHEAD));h.manufacturer = 0x0a;h.version = 5;h.encoding = 1;h.xmin = h.ymin = 0;h.xmax = width - 1;h.ymax = depth - 1;h.hres = h.vres = 0;h.palette_type = 1; if( BitsPerPixel & 5 ) {kk1}h.bits_per_pixel = 1;h.colour_planes = BitsPerPh.bytes_per_line = pixels2bytes(width);memcpy(h.palette,palette,(1&&BitsPerPixel)*3);}else if (BitsPerPixel == 8) {kk1}h.bits_per_pixel = 8;h.colour_planes = 1;h.bytes_per_line =}else {kk1}h.bits_per_pixel = 8;h.colour_planes = 1;h.bytes_per_line =}fwrite( (char *)&h,1,sizeof(PCXHEAD),fp ); }
1、优点 TIF格式的优点主要是适合于广泛的应用程序,它与电脑结构、操作系统和图形处理的硬件无关,它可以处理黑白和灰度图形,允许使用者针对一个扫描器、监视器和打印机的特殊佳能而进行调整。TIF具有防止错误发生的格式,因此,对于媒体之间的数据交换, TIF常常是位元映射的最佳选择之一。2、缺点 TIF有一个主要的缺点,就是需要花费大量的程序设计工作来进行图形翻译,例如, TIF数据可以用几种不同的方法压缩。为了达到覆盖面更广,一个TIF读取程序必须具有支持这些不同压缩方法的功能。3、变体 TIF有许多的变体,所以要使数据交换可行,程序设计师要努力使得TIF读取程序可以翻译TIF的各种特性。TlF文件、读取程序和写入程序是根据不问的光度(彩色或灰度)和数据压缩方法而变化的。TIF 5.0定义了四个测光度的TIF级别: TIF-B为色, TIF-G为灰度, TIF-P为基于调色板的彩色,而TIF-K为RGB彩色。 在这些级别中,象点数据可以用六种压缩格式的任何一种储存,压缩格式通常由一个编号区别,如下所示:#1 无压缩#2 CCITTGroup 3,改进的霍夫曼运行长度编码(MOdifed Huffman Run Length Encoding)#3 传真机相容使用的CCITT Group 3#4 传真机相容使用的CCITT Group 4#5 LZW (Lempel-Ziv&Welch)压缩#32773 PackBits (Macintosh)1988年8月发行的TIF5.0版本,又增加一些新格式:#32766 2位元的NeXT RLE(Run Length Encoding)#32771 类型2的字符对齐版本#32809 4位元的Thunderscan增量和RLE#32900 Pixar"picio" RLE#3290l Silicon Graphics RLETIF 6.0版产生于1992年春天,提供了JPEG压缩和其他新功能。4、综述 TIF是一种国际上非常流行的适于各种电脑和操作系统的图形文件格式,目前国际上流行的很多软件都支持TIF格式。一般扫描器所配备的软件都直接或间接地用到TIF图形文件格式,还有一些软件系统,例如: Windows系统下的PhotoStyler都把TIF作为图形的存取格式, TIF格式也可以转换为Windows的BMP等其它格式。
TIFF格式有三级体系,从高到低依次为:文件头,一个或多个称为IFD的包含桥记指针的目录以及数据。体系的最高层是文件头,只包含三个表项:}

我要回帖

更多关于 无线电字母解释法图表 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信