选择显示字体大小

基于vc.net的gdi+图像处理


  我们知道,在以往的图像处理中,常常要根据不同图像文件的格式及其数据存储结构在不同格式中进行转换。某个图像文件的显示也是依靠对文件数据结构的剖析,然后读取相关图像数据而实现的。现在,gdi+提供了image和bitmap类使我们能轻松容易地处理图像。

  概述

  gdi+支持大多数流行的图像文件格式,如bmp、gif、jpeg、tiff和png等。下面先来介绍这些图像文件,然后再说明image和bitmap类支持的特性。

  1.图像文件格式简介

  图像文件是描绘一幅图像的计算机磁盘文件,其文件格式不下数十种。这里仅介绍bmp、gif、jpeg、tiff和png等图像文件格式。

   bmp文件格式

  bmp图像文件格式是microsoft为其windows环境设置的标准图像格式。一个windows的bmp位图实际上是一些和显示像素相对应的位阵列,它有两种类型:一种称之为gdi位图,另一种是dib位图(device-independent bitmap)。gdi位图包含了一种和windows的gdi模块有关的windows数据结构,该数据结构是与设备有关的,故此位图又称为ddb位图(device-dependent bitmap)。当用户的程序取得位图数据信息时,其位图显示方式视显示卡而定。由于gdi位图的这种设备依赖性,当位图通过网络传送到另一台pc,很可能就会出现问题。

  dib比gdi位图有很多编程优势,例如它自带颜色信息,从而使调色板管理更加容易。且任何运行windows的机器都可以处理dib,并通常以后缀为.bmp的文件形式被保存在磁盘中或作为资源存在于程序的exe或dll文件中。

   gif文件格式

  图形交换格式(gif--graphics interchange format)最早由compuserve公司于1987年6月15日制定的标准,主要用于compuserve网络图形数据的在线传输、存储。gif提供了足够的信息并很好地组织了这些信息,使得许多不同的输入输出设备能够方便地交换图像,它支持24位彩色,由一个最多256种颜色的调色板实现,图像的大小最多是64k x 64k个像点。gif的特点是lzw压缩、多图像和交错屏幕绘图。

   jpeg文件格式

  国际标准化组织(iso)和国际电报电话咨询委员会(ccitt)联合成立的"联合照片专家组"jpeg(joint photographic experts group)经过五年艰苦细致工作后,于1991年3月提出了iso cd 10918号建议草案:"多灰度静止图像的数字压缩编码"(通常简称为jpeg标准)。这是一个适用于彩色和单色多灰度或连续色调静止数字图像的压缩标准。它包括无损压缩和基于离散余弦变换和huffman编码的有损压缩两个部分。前者不会产生失真,但压缩比很小;后一种算法进行图像压缩时,信息虽有损失但压缩比可以很大。例如压缩20~40倍时,人眼基本上看不出失真。

  jpeg图像文件也是一种像素格式的文件格式,但它比bmp等图像文件要复杂许多。所幸的是,gdi+的image提供了对jpeg文件格式的支持,使得我们不需要对jpeg格式有太多的了解就能处理该格式的图像。

   tiff文件格式

  tiff(tagged image format file,标志图像文件格式)最早由aldus公司于1986年推出的,它能对从单色到24位真彩的任何图像都有很好的支持,而且在不同的平台之间的修改和转换是十分容易的。与其它图像文件格式不同的是,tiff文件中有一个标记信息区用来定义文件存储的图像数据类型、颜色和压缩方法。

   png文件格式

  png(portable.network graphic,可移植的网络图像)文件格式是由thomas boutell、tom lane等人提出并设计的,它是为了适应网络数据传输而设计的一种图像文件格式,用于取代格式较为简单、专利限制严格的gif图像文件格式。而且,这种图像文件格式在某种程度上甚至还可以取代格式比较复杂的tiff图像文件格式。它的特点主要有:压缩效率通常比gif要高、提供alpha通道控制图像的透明度、支持gamma校正机制用来调整图像的亮度等。

  需要说明的是,png文件格式支持三种主要的图像类型:真彩色图像、灰度级图像以及颜色索引数据图像。jpeg只支持前两种图像类型,而gif虽然可以利用灰度调色板补偿图像的灰度级别,但原则上它仅仅支持第三种图像类型。

  mage和bitmap类概述

  gdi+的image类封装了对bmp、gif、jpeg、png、tiff、wmf(windows元文件)和emf(增强wmf)图像文件的调入、格式转换以及简单处理的功能。而bitmap是从image类继承的一个图像类,它封装了windows位图操作的常用功能。例如,bitmap::setpixel和bitmap::getpixel分别用来对位图进行读写像素操作,从而可以为图像的柔化和锐化处理提供一种可能。

  3.drawimage方法

  drawimage是gdi+的graphics类显示图像的核心方法,它的重载函数有许多个。常用的一般重载函数有:

status drawimage( image* image, int x, int y);
status drawimage( image* image, const rect& rect);
status drawimage( image* image, const point* destpoints, int count);
status drawimage( image* image, int x, int y, int srcx, int srcy,
int srcwidth, int srcheight, unit srcunit);

  其中,(x,y)用来指定图像image显示的位置,这个位置和image图像的左上角点相对应。rect用来指定被图像填充的矩形区域, destpoints和count分别用来指定一个多边形的顶点和顶点个数。若count为3时,则表示该多边形是一个平行四边形,另一个顶点由系统自动给出。此时,destpoints中的数据依次对应于源图像的左上角、右上角和左下角的顶点坐标。srcx、srcy、srcwidth 和srcheight用来指定要显示的源图像的位置和大小,srcunit用来指定所使用的单位,默认时使用pageunitpixel,即用像素作为度量单位。


 


关键字 本文所属关键字

相关 与本文相关文章

分类 所有文章关键字导航

源码编程相关

Java   Asp   PHP   .Net   XML   C/C++   CGI   VB   Jsp   J2ee   J2se   J2me   EJB   Servlet   Tomcat   Resin   Struts   Weblogic   Eclipse   ANT   GUI   JMS   Web servise   IDEA   Webphere   Hibernate   Spring   Jboss   Applet   Swing   Socket   Javamail   Perl   Ajax   P2P   安全   模式   框架   测试   开源   游戏

SQL数据库相关

My-SQL   Ms-SQL   Access   DB2   Oracle   Sybase   SQLserver   索引   存储过程   加密   数据库   分页   视图  

手机无线相关

3G   Wap   CDMA   GRPS   GSM   IVR   彩信   短信   无线   增值业务

网页设计制作相关

HTML   CSS   网页配色   网页特效   Javascript   VBscript   Dreamweaver   Frontpage   JS   Web   网站设计

网站建设推广相关

建站经验   网站优化   网站排名   推广   Alexa

操作系统/服务器相关

Windows XP   Windows 2000   Windows 2003   Windows Me   Windows 9.x   Linux   UNIX   注册表   操作系统   服务器   应用服务器

图形图像多媒体相关

Photoshop   Fireworks   Flash   Coreldraw   Illustrator   Freehand   Photoimpact   多媒体   图形图像

标准 网站致力的规范

Valid CSS!

无不良内容,无不良广告,无恶意代码

Valid XHTML 1.0 Transitional

creativecommons