《毕业设计(论文)ASP.NET图象处理使用技术研究与实现.doc》由会员分享,可在线阅读,更多相关《毕业设计(论文)ASP.NET图象处理使用技术研究与实现.doc(33页珍藏版)》请在三一办公上搜索。
1、摘 要图象处理技术在图象通讯、办公自动化系统、地理信息系统、医疗设备、卫星照片传输及分析和工业自动化领域的应用越来越多。目前,在我国以多媒体方面的应用较多。图象处理在过去主要以专用软件为主,随着Microsoft ASP.NET的推出,将在这一应用上提出新的课题。ASP.NET无须使用第三方控件来实现图象处理,本身已经具有强大的功能来实现一些图象处理。关键词:数字化、ASP.NET、BMP、GIF、TIF、TGA、JPEG、System.Drawing 目录摘 要1ABSTRACT2目录3前言5第一章图象处技术理论依据及分析71.1 理论依据71.2 计算机图象处理输出输入形式类型71.2.1
2、 从图象到图象71.2.2 从数据到图象71.2.3 从图形到特征数据、特征图象81.2.4 从图象的数据到图象81.3 数字图象处理81.3.1 模拟图象处理简介81.3.2 图象数字化处理简介8第二章 图象数字化技术102.1 图象数字化102.2 代表性图形图像文件说明122.2.1 BMP文件122.2.2 GIF文件122.2.3 TIF(TIFF)文件132.2.4 PCX文件142.2.5 TGA文件142.2.6 JPEG文件152.3 图象格式应用152.3.1.格式应用152.3.2 TIFF格式应用152.3.3 JPEG格式应用162.3.4 GIF格式应用162.3.
3、5 PSD格式应用16第三章 ASP.NET概论173.1 ASP.NET的优势173.1.1 整洁,易于阅读173.1.2 配置、伸缩性、安全性和可靠性173.1.3 更佳的浏览器支持183.1.4 创新WEB应用183.2 ASP.NET的强大特征183.3 编译语言193.3.1 Web表单203.3.2 页面事件22第四章 ASP.NET图象处理244.1 System.Drawing的使用244.2 读取和改变图象文件大小254.3 画图特效26第五章 结论27参考文献28附录29前言图象处理技术起源比较早,但真正发展是在八十年代后,随着计算机技术的高速发展而迅猛发展起来。到目前为止
4、,图象处理在图象通讯、办公自动化系统、地理信息系统、医疗设备、卫星照片传输及分析和工业自动化领域的应用越来越多。但就国内的情况而言,应用还是很不普遍,人们还在忙于理论研究,诸如探索图象压缩编码等,而对于将成熟技术转化为生产力方面似乎认识不够。主要从事以下几个方面的研究:1 图象压缩。图象压缩在图象传输,特别是在卫星向地面传输图象方面有重要意义。图象压缩分无损及有损压缩两类,无损压缩由于其压缩比有一定的极限,所以目前已经不是研究的热点,大家的研究主要集中在有损压缩上。所谓的有损压缩就是压缩后图象的某些信息会丢失。由于各类专业图象所关心的信息不同,其压缩方法也不相同,针对各种类型图象开发专用的压缩
5、算法是当前研究的热点。例如一种压缩算法是针对卫星照片的,当对其有损压缩(大压缩比)后发到地面后,有些细节就丢失了,而这些细节往往正是我们关心的,如一些军事目标(他们往往非常小)。因此在对这类图象压缩时,必须采用特殊的算法以保证在压缩后能保留这些细节。另外,对于指纹这样的特殊图象如何在压缩后保存其完整特征也是一个研究课题。2 三维重建。随着计算机技术的不断发展,在产品设计方面,已从平面向三维空间发展。在地图方面,延续千年的平面地图已有被三维电子地图取代的趋势。在解放军测绘学院参观时,他们所演示的基于三维地图的电子沙盘技术给我们留下了深刻的印象。三维地图可以通过以下几种方式生成:用不同角度的航拍照
6、片或卫星照片生成纵向坐标; 购买国外解密的数据; 扫描地图,利用地图上的等高线生成高度方向上的数据。 电子沙盘可实现任意角度旋转、放大缩小,水平、垂直等方向上的距离的计算,即点即得,十分方便直观。另外,两点之间的障碍物、剖面轮廓等都能直观显示。除此之外,还能模拟飞行路线等。所有这些为指挥作战带来了极大的方便。而所用的开发工具都是普通的工具,如:VC+,OpenGL等。当然,图形卡一般采用专业的图形卡。3 虚拟现实。计算机的运算速度发展到今天,已为虚拟现实提供了可能。在华中理工大学参观时,他们解释了在虚拟现实方面的一些工作。通过采用数据手套及在机器人身上的摄象机,人可以真实感受机器人所处的真实环
7、境,并且能够操纵机器人。另外,网上虚拟现实也是一个研究重点,也许有一天我们在网上购书与我们今天逛书店一样,当然这依赖网络传输速度的极大提高。但由于受到带宽的限制,可视电话及会议系统方面的应用并不成熟。而目前技术最成熟、应用面最广的工业自动化领域及医疗设备方面。在工业自动化方面,从贴片机到AOI,从点胶机到各种BONDING设备都要用到图象处理,其市场非常大。虽然图象处理应用面比较广泛,但目前在国内应用最多的方面是多媒体,本论文以下主要论述图象处理实现的理论基础和ASP.net在图象处理技术中的实际应用。第一章 图象处技术理论依据及分析1.1 理论依据当前是信息时代,对信息的获得、加工、处理和应
8、用都有了飞跃发展。20世纪50年代,计算机技术发展到相当水平后,计算机图象处理才迅速发展并形成新的学科。这项技术首先用语宇航领域中,在太空照片的处理上获得成功,收到明显的效果。随后在卫星遥感、军事侦察、生物医学工程等应用中有都取得极大的成功,从而更促进个个新学科理论、技术的完善和发展,并进一步扩大起应用领域。同时各个应用领域对计算机图象处理不断的提出更新、更高的要求,例如:实时处理、计算机视觉、与图形学密切关联的处理等。90年代的计算机多媒体技术对计算机的图象处理、图象信息的压缩和图象档案的传输以及计算机声音信号的处理都提出了更高的要求;对图象数据库、存档、检索等相应的软件、硬件、借口等特别是
9、对实时性和多媒体的适应性、兼容性以及在图象的兼容、互补的虚拟现实技术等方面,不但对计算机提出高要求,对计算机图象处理几乎也要向更高级方向发展。随着社会的发展,对图象处理的要求不断提高,目前已在很多方面做出了显著效果。1.2 计算机图象处理输出输入形式类型1.2.1 从图象到图象输入为图象,输出也是图象。主要应用与处理的最终结果,是以图象形式给人观看的。明显的离子是医学应用,不论是X光照片还是CT图片都是为了给医生作诊断的根据;又如运动图象模糊的恢复是为了在交通管理或体育运动中动态地判断汽车和人的形象。其他例子还有历史古物珍品图象的复原、宇航图片的去除等。1.2.2 从数据到图象输入为数据、公式
10、、计算结果和曲线而输出为图象如模式识别中大量数据的预处理用图象显示,则易于作出判断函数。从投影重建图象如CT就是利用收集的多组投影数据,最后形象地给医生作诊断辅助,实际上用计算机的数据、公式产生的图象正是图形学的新发展。1.2.3 从图形到特征数据、特征图象输入为图象,输出是一些极简单的图象或数据。例如输出为一物体边缘或某种特征句法的一个句子。这些输出的简单数据和图象是供计算机理解分析、判断图象所必需的。这实际上是人对客观事物模式的识别过程,也可称为计算机视觉。1.2.4 从图象的数据到图象主要用在图象的传送。要求把图象信息压缩成为便于传输的数据而不能丢掉信息,传到远端后再形成保真度高的图象以
11、供观看。显然,任何处理当中只要有一个环节与图象有关就需要图象和图象处理知识。1.3 数字图象处理用计算机去处理图象首先应把模拟图象变为数字才能进行到计算机中去处理。从图象处理角度看,模拟图象也可以不输入到计算机而直接用模拟方式来处理。下面说明二者的关系。1.3.1 模拟图象处理简介人类最早的图象处理是光学的处理,如放大、缩小、显微等,这些都属于模拟图象的处理。这种处理从本质看是属于并行处理的范畴,其最明显的特点是处理速度快。由于处理过程采用光学器件如镜头、棱镜等,它的不灵活性就较为突出,而且一个光学器件从设计到加工直到成品需要很长时间,其加工过程也难以保证精度。尽管如此,许多军用、宇航的处理仍
12、采用光学模拟处理。特别是近来光学处理技术的发展,大大增强了模拟图象处理的实用性。例如光学的频域处理(即傅立叶变换光学)系统既简单又实用。1.3.2 图象数字化处理简介数字图象是把需要处理的模拟图象数字化。简单的讲用一个如图1中的网格把欲处理的图象罩上,然后把每一个方格中的模拟图象的各个另度取其平均值,作为该小方格中点的值。这样一幅模拟图象就变化为只用小方格中点的饿值来代表的离散值图象。这个网格又称为抽样网格,其意义是以网格为基础,采用某种形式去抽取模拟图象的饿代表点的值,也称为抽样。抽样后形成的图象称为数字图象。(图1)第二章 图象数字化技术2.1 图象数字化这一部分重点介绍一些常见常用的计算
13、机图像文件格式,并对它们进行比较。图像数字化是计算机图像处理之前的基本步骤,目的是把真实的图像,转变成计算机能够接受的存储格式。数字化过程分为采样与量化处理两个步骤,采样的实质就是要用多少点来描述一张图像,比如,一幅640480的图像,就表示这幅图像是由307200个点所组成。可见,想要得到更加清晰的图像质量,就需要使用更多的点来表示图像,也就是使这幅图像具有较高的分辨率。但相对需要付出更大的存储空间的代价。采样的结果就是通常所说的图像分辨率。量化是指要使用多大范围的数值,来表示图像采样之后的每一个点。这个数值范围包括了图像上所能使用的颜色总数。例如,以4个bits存储一个点,就表示图像只能有
14、16种颜色。数值范围越大,表示图像可以拥有更多的颜色,自然可以产生更为细致的图像效果。但是,也同样必须占用更大的存储空间。量化的结果是图像能够容纳的颜色总数。两者的基本问题都是视觉效果与存储空间的取舍问题。 在采样与量化处理后,才能产生一张数字化的图像,再运用计算机图像处理软件的各种技巧,对图像进行修饰或者转换,方能进一步达到所希望的图像效果。 数字化后的图像数据在计算机中一般有两种存储方式,一种是位映射(Bitmap),即位图模式;而另一种是向量处理(Vector),也称矢量图模式。位映射是将图像的每一点数值存放在以字节为单位的矩阵中。当图像是单色时,一字节可存放8点图像数据;16色图像每两
15、点用一个字节存储;256色图像每一点用一字节存储。这样就能够精确地描述各种不同颜色模式的图像画面。所以此种存储模式比较适合于内容复杂的图像和真实的照片。向量处理不存储图像数据的每一点,而是存储图像内容的轮廓部分。例如,一个圆形图案只要存储圆心的坐标位置和半径长度,以及圆形边线和内部的颜色。该存储方式缺点是经常耗费大量的时间做一些复杂的分析演算工作;但图像的缩放不会影响到显示精度,也即图像不会失真,且图像的存储空间较之位图方式要少得多。所以,向量处理比较适合存储各种图表和工程设计图,而一般图像文件较少采用向量处理方式。 总体来看,位图是记录每一个象素的颜色值,再把这些象素点组合成一幅图像;而矢量
16、图是保存节点的位置和曲线、颜色的算法,所以,位图占用的存储空间较矢量图要大的多,而矢量图的显示速度较位图慢。多媒体图像处理中的调色板是包含不同颜色的颜色表,每种颜色以红绿蓝()三种颜色的组合来表示,图像的每一像素对应一个数字,而该数字对应调色板中的一种颜色,如某像素值为,则表示该颜色为调色板的编号为的颜色。调色板的单元个数是与图像的颜色数对应的,色图像的调色板就有个单元。真彩色图像的每个像素直接以三个字节()表示颜色,因此不需要调色板。对于色或色图像并非全部的图像都采用相同的种或种颜色,由于调色板中定义的颜色不同,则不同图像用到的颜色是千差万别的,所谓色或色图像只是表示该幅图像最多只能有种颜色
17、或种颜色。不同的图像有不同的调色板,在多媒体系统中如果需要同时显示多幅图像时,由于系统在同一时刻只能支持有限的颜色,如使用色驱动程序,则系统必须以色来同时显示多幅图像,因此,必须使用调色板编辑工具进行调整,以达到不失真地同时显示多幅图像。2.2 代表性图形图像文件说明2.2.1 BMP文件BMP文件是Microsoft Windows所定义的图像文件格式,最早应用在Microsoft公司的Microsoft Windows窗口系统。众所周知,Microsoft Windows 现今已成为PC机环境下窗口系统的事实上的工业标准,因而BMP图像文件格式也越来越受到人们关注,在Windows环境中运
18、行的图形图像软件都支持BMP图像格式。BMP图像文件有下列五个特点: (1) 该结构只能存放一幅图像。 (2) 只能存储四种图像数据:单色、16色、256色、全彩色。 (3) 图像数据有压缩或不压缩两种处理方式。(4) 调色板的数据存储结构较为特殊。(5) Windows设计了两种压缩方式:RLE4和RLE8。RLE4只能处理 16色图像数据;而RLE8则只能压缩256色图像数据。 BMP图像文件的文件结构可分为三部分:表头、调色板和图像数据。表头长度固定为54个字节。而只有全彩色BMP图像文件内没有调色板数据,其余不超过256种颜色的图像文件都必须设定调色板信息,可见其结构较为简单。对于BM
19、P图像文件的显示,16色BMP图像与256色图像的扫描行数据组织都是从左上角开始。只是16色图像采用紧缩像素法,每像素占用二分之一个字节,即4bits,而256色图像的每一个像素占用一个字节。 2.2.2 GIF文件GIF文件是Graphics Interchange Format(图形交换格式)的缩写,是由CompuServe公司为了方便网络和BBS使用者传送图像数据而制定的一种图像文件格式。目前,GIF图像文件已经成为网络和BBS上图像传输的通用格式,经常用于像动画、透明等特技制作。 GIF文件有下面七个特点: 文件具有多元化结构能够存储多张图像,这是制作动画的基础。调色板数据有通用调色板
20、和局部调色板之分。采用改进版LZW压缩法,该压缩优于RLE压缩法。图像数据用一个字节存储一点。GIF图像文件在压缩图像数据之前,必须先将图像数据处理成一个字节只存储一个图像点的值。根据标识符寻找数据区。GIF图像文件内的各种图像数据区和补充区,多数没有固定的数据长度和存放位置。为了方便程序寻找数据区就以数据区的第一个字节做为标识符,让程序能够判断所读到的是哪种数据区。 图像数据有两种排列方式:顺序排列;交叉排列。最多只能存储256色图像。 GIF图像文件结构一般是由七个数据单元组成,它们是:表头、通用调色板、图像数据区以及4个补充区。而只有表头和图像数据区是文件不可缺少的单元,对于通用调色板和
21、其余的4个补充区不一定会出现在文件内。在GIF图像文件内可以有多个图像数据区,而每个图像数据区存储一幅图像,通过软件处理和控制(如Paint Shop Pro和Animation Shop)使得这些分离的图像能够形成一个连续有动感的画面,即动画图像。所以,GIF图像文件常用于制作Web网页和多媒体系统的特技效果。2.2.3 TIF(TIFF)文件TIFF文件是Tag Image File Format的缩写,是由Aldus公司与微软公司共同开发设计的图像文件格式。它有如下特点: 善于应用指针的功能,可以存储多幅图像。 文件内数据区没有固定的排列顺序,只规定表头必须在文件前端,对于标识信息区和图
22、像数据区在文件中可以随意存放。可制定私人用的标识信息。除了一般图像处理常用的RGB模式之外,TIFF图像文件还能够接受CMYK、YcbCr等多种不同的图像模式。 可存储多份调色板数据。 调色板的数据类型和排列顺序较为特殊。 能提供多种不同的压缩数据的方法,便于使用者选择。图像数据可分割成几个部分分别存档。TIFF图像文件主要由三部分组成:表头、标识信息区和图像数据区。文件内固定只有一个表头,且一定要位于文件前端。表头有一个标志参数指出标识信息区在文件中的存储地址,而标识信息区也有一组标识信息,用于存储图像数据区的地址。标识信息区内有多组标识信息,每组标识信息长度固定为12个字节。前8个字节分别
23、代表标识信息的代号(2字节)、数据类型(2字节)、数据量(4字节)。最后4个字节则存储数据值或标志参数。文件有时还存放一些标识信息区容纳不下的数据,例如调色板数据就是其中的一项。 由于应用了标志的功能,TIFF图像文件才能够实现多幅图像的存储。若文件内只存储一幅图像,则将标识信息区内容置0,表示文件内无其他标识信息区,只存储单幅的TIFF图像文件结构。若文件内存放多幅图像,则在第一个标识信息区末端的标志参数,将是一个值非0的长整数,表示下一个标识信息区在文件中的地址,只有最后一个标识信息区的末端才会出现值为0的长整数,表示图像文件内不再有其他的标识信息区和图像数据区。2.2.4 PCX文件PC
24、X图像文件是由Zsoft公司在80年代初期设计的,专用于存储该公司开发的PC Paintbrush绘图软件所生成的图像画面数据。目前PCX文件已成为PC机上较为流行的图像文件。 下面是PCX图像文件的几个特点: 一个PCX图像文件只能存放一张图像画面。 它是使用RLE压缩方法来进行压缩的。 PCX图像文件有多个版本,能处理多种不同模式下的图像数据。 4色和16色PCX图像文件有可设定或不设定调色板数据的两种选项。(5) 16色图像数据可分为一个或四个bit Plane来处理。 2.2.5 TGA文件TGA格式是由Truevision公司为视频摄象机图象而设计,用于帧捕捉的最主要的24位图象格式
25、,其典型的图象尺寸为400*512个像素,每像素16 . 24或32位彩色。目前各电视台节目制作时叠加的台标或栏目标花多是以 .tga图片文件引入字幕机的。在电视台节目的制作中,制作人员有时也需要利用非线性编辑设备从录象带上抓取画面(抓帧),然后将所抓画面用于印刷或上网发布新闻图片。这时抓帧所得的图象就是TGA文件格式,可以利用PhotoShop进行格式转换。2.2.6 JPEG文件JPEG格式一般用来显示照片和WWW以及在线服务的HTML(超文本标记语言)文件,它能保存RGB图象中的所有颜色信息。JPEG也是一种带压缩的文件格式,但在压缩时文件有信息损失。当需要在INTERNET上发布新闻图
26、片时,一般以 .jpg格式的图片上载,不能太大,一般为180*160像素,以免文件过大,影响网民下载兴趣。2.3 图象格式应用面对如此多的纷繁复杂的图象格式,怎样做到心中有数,如何使用起来得心应手?首先必须区分清楚各种文件格式在计算机中何时出现?如何实现它们彼此之间的格式转换?以及在什么情况之下,一种格式好于另一种格式,然后就可以根据实际应用情况,有区别的决定选取的文件格式。2.3.1.格式应用格式是WINDOWS和OS/2机的本机文件格式,当计算机系统平台是基于这两种软件时,我们打开计算机最常见到的屏幕保护画面(即壁纸)一般就是 . BMP文件。这可以通过打开控制面板中的显示设置看到。当然如
27、果您使用WINDOWS系列操作系统附件提供的画图板(PAINT)创作时,系统默认的保存格式也是 . BMP,您也可以选择存为 .JPEG或 .GIF格式,并把它们用作屏幕保护画面,使您的屏保与众不同。BMP格式也是您与没有图象处理软件的用户共享图象文件的一种很好的格式。在一些个人计算机中还普遍支持另外一种图象文件格式,即PCX。PCX文件是压缩的,因此同一幅图象用PCX格式保存比用BMP格式小。PICT是Macintosh系统的本机文件格式。2.3.2 TIFF格式应用TIFF(带标记的图象文件格式)是一种很好的跨平台格式,如果需要保存带有选择区域信息的Alpha通道图象,可以选择这种格式,T
28、IFF文件能够保存一个Alpha通道。2.3.3 JPEG格式应用JPEG格式包含有颜色深度信息,在保存照片和具有平滑渐变或混合模式的图象时,最好选择JPEG格式。它的压缩比可以达到100:1,压缩比越高,图象质量受到的损失越大。使用时系统一般会要求选择图象大小和分辨率。 2.3.4 GIF格式应用GIF格式用于保存许多帧可一幅接一幅显示的画面,通过软件处理和控制,这些画面能够演示一个连续有动感的画面。这种能力使得GIF成为网上最流行的选择。由于WWW浏览器只支持GIF和JPEG格式,所以目前从INTERNET上下载的某个网页的内容时,除了可以得到文字及JPEG格式的图片外,还会得到许多的GI
29、F文件,一般为一组或几组分离的小画面,它们就是该网页所含动画的组成子画面。其实利用Photoshop可以很容易的创作动画。在Photoshop上创建一幅每层有一帧新画面的图象,然后将它存为本机PSD格式,并输出给一个动画程序,如Gamma公司的GIF Movie Gear,并设置每一帧画面的持续时间,然后执行转换,就可以生成一个动画文件了。制作自己的网页时,动画制作是免不了的。2.3.5 PSD格式应用PSD是Adobe公司的Photoshop软件默认的格式,它可以将Photoshop创建的所有层 . 通道 .遮罩和选择区域一同保存,便于对画面的重做 .更新和改变,但由此带来文件占用空间比较大
30、。另外,Adobe还开发了另一种可移植的文件格式,即PDF,采用这种格式输出的页面,可以在任何计算机上使用免费阅读器Adobe Acrobat Reader阅读。应用PDF格式可以创建在线手册,并可将其发送上网或通过电子邮件传送。 上文提到的所有文件格式,均可以用Photoshop打开并实现互相的转换。Photoshop的文件菜单的存为副本的功能中,提供了10种文件格式可供选择。另外,我们在电视节目制作中,经常需要由扫描仪引入一些图片,在Photoshop界面下使用TWAIN32引入的图象默认格式也是PSD,可以方便地进行各种处理及转换。第三章 ASP.net概论 ASP现在被从头到脚地重建了
31、,结果就是ASP.NET。它并不只是ASP 4.0,它是一个用于 Web开发的全新框架,其中包含了许多新的特性。ASP.NET提供了更易于编写、结构更清晰的代码,这些代码很容易进行再利用和共享;ASP.NET使用编译后的语言,从而提升性能和伸缩性;ASP.NET使用Web表单使开发更直观,利用面向对象技术促进组件的再利用。另外,ASP.NET中还包括有页面事件、Web控件、缓冲技术以及服务器控件和对数据捆绑的改进。供 ASP.NET使用的库以及在Microsoft.NET框架中允许通过Web 使用客户商用函数,为程序员提供了更多新的开发机会。 3.1 ASP.NET的优势 3.1.1 整洁,易
32、于阅读ASP.NET使代码更加干净。现有的ASP 应用程序中,不管你将它们写得怎么样,结构总是充满了长长短短的代码。而ASP.NET的代码不仅更容易编写,而且更加干净整洁,比ASP代码更易于阅读。同时,ASP.NET代码的结构方式提高了其再利用性和共享性。 3.1.2 配置、伸缩性、安全性和可靠性ASP.NET 改进了配置、伸缩性、安全性和可靠性。对于简单的ASP应用程序,配置其实并不算什么问题,但是当你移植到一个利用组件的N层结构中时就会遇到问题。当你对这些应用程序进行配置和维护时,DLL 陷阱问题(组件注册、版本、锁定的DLL等等)就会出现。ASP.NET中则取消了组件注册以及DLL锁定,
33、全面使用了XML配置文件,从而解决了这个问题。这样你只需要执行复制文件的工作就能配置一个Web应用程序。 3.1.3 更佳的浏览器支持ASP.NET对各种不同的浏览器提供了更好的支持。对于ASP开发人员来说,浏览器兼容问题好象是一个永恒的问题。你或者为低一级的浏览器编写代码,例如用HTML 3.2,或者限制页面的浏览范围。无线应用程序协议WAP设备的引入还会深化这个问题。本文中Web表单这部分描述了ASP.NET是如何解决浏览器兼容性问题的。 3.1.4 创新WEB应用ASP.NET 造就了一类新的Web应用程序。目前的Web应用程序通常都是同一种模式:一套线性应用程序,然后将逻辑植入其中之一
34、。ASP.NET允许开发人员打破这种单一模式,创造出更加动态而且伸缩性更强的应用程序,这种应用程序能够更好地满足公司的商业需求,并提供一个更加丰富的开发环境。 3.2 ASP.NET的强大特征 对编译语言的支持 Web表单 跟随页面对象的页面事件 Web控件 Web Services 缓冲技术 调试和跟踪 代码和内容隔离 名称空间的通用库 配置 3.3 编译语言 现有的ASP版本是基于脚本语言的,如VBScript和JScript 。脚本语言本身并没有什么错,但是它们有两大缺陷:它们是解释型的,并且分类不严格。ASP.NET并没有完全抛弃脚本语言的概念,它引入了对全编译语言的支持,使你能够用V
35、isual Basic编写自己的服务器端代码,例如: Visual Basic的一大优势是其对严格分类变量的支持,因此以下的代码在ASP.NET中是成立的: Dim FirstName As String 除了Visual Basic和C+,你还可以使用最新的Microsoft语言 C#来编写服务器端代码。C# 将C+ 中不实用的部分都去掉了,它更容易理解。用ASP.NET,编译动作在页面第一次装载时发生。即便代码是脚本语言,它也会在执行前被编译,因此 Jscript代码页面的性能也会得到提高。实际上,这是 .NET 框架的一个基本的新特征。以前版本的语言编译器对数据类型和对象是区别对待的,这
36、就意味着唯一可以进行跨语言开发的就是创建COM对象。Microsoft .NET框架中的通用语言运行时间环境CLR允许对已经用通用运行时间支持编译过的任何代码进行紧密的交互作用,这就是新的Visual Basic和C# 编译器将要做的:创建能在运行时间中被管理的代码。 这样做最大的优点是使得真正的跨语言开发成为可能。有了通用运行时间环境CLR,你可以用C#创建对象,并在 Visual Basic中通过继承功能对它们进行扩展。现在的 Visual Basic .NET支持继承功能,这样你就可以在C# 中编写组件,然后在Visual Basic中将它们设置成子集。虽然 Visual Basic、C
37、#和脚本语言是在开始的框架结构中被支持的语言,但是稍后其它语言,如Smalltalk、Eiffel、Pascal等等,也将会被支持。Microsoft .NET框架的一个优势就是扩展非常得容易,因此使用一种新的语言仅仅需要为运行时间环境兼容的输出提供编译器支持。3.3.1 Web表单 ASP.NET Web Forms就是Web页面,同现在你用 ASP编写代码所做的工作是一样的。但是还不仅仅如此,ASP.NET Web Forms是在一个面向对象的编程模型上设计的,这样代码就能够再利用,并且使应用程序代码与页面内容分隔开。在Visual Basic中,你将一个控件拖曳到一个表单上,然后执行其下
38、的事件程序。在传统的 ASP中,这是不可能的,因为在用户界面控件和它们的服务器端代码之间没有链接存在。但是在ASP.NET中,这样的一个链接是存在的。所以,你可以编写下面表1所示的代码,而不用手动从变量表中拖出值: 表1 简单ASP.NET Web Form例程 Sub SubmitButton_Click(Source As Object, E As EventArgs) Response.Write (You entered & Name.text) End Sub Name: 在表1中有两点值得注意。第一是在表单上 runat=“server” 属性和 asp:textbox控件的使用,
39、这可以告诉 ASP.NET 服务器和客户都可以使用这些控件。如此使用的控件叫做服务器控件。asp: 用做控件名的前缀,它本身就识别了控件是从哪来的。稍后我将讨论这一点。第二个需要注意的细节是OnClick事件。开发DHTML 代码时,你经常要用到 OnClick事件,这是为了在浏览器中激活一个事件。因为为控件设置了runat=“server” 属性,所以事件只在服务器上被激活。要对这个例子进行扩展,可以去掉 Response.Write,然后用一个基于服务器的控件来代替它,比如下面的表2代码: 表2 使用基于服务器的控件 Sub SubmitButton_Click(Source As Obj
40、ect, E As EventArgs) YouEntered.Text = You entered & txtName.text End Sub Name: 这个代码很象一个传统的客户或Visual Basic表单,代码也直观多了。你可以用服务器控件来连接事件过程和基于服务器的代码。这些基于服务器的控件向浏览器发送纯 HTML内容,其中不再含有客户端脚本。实际上,这其中一个重要的设计目的就是要坚持使用固有的 HTML 3.2元素代码以提供最大可能的浏览器兼容性。比如说,表2中的代码生成了以下HTML: Name: 生成的代码是符合 HTML 3.2标准的。它执行一个标准投递,将用户输入发送回
41、同一个文件。这里没有对服务器状态进行维护,也没有客户端脚本对状态进行维护。隐含的域执行对控件状态的维护,这意味着在页面的“提交返回”之间,控件能自动恢复状态,而不需要任何编程干预。虽然 ASP.NET Web控件的默认输出是符合HTML 3.2标准的内容,但是对于更高级的浏览器如Microsoft Internet Explorer 5.0,也可以输出为DHTML格式。这样你就能只使用一套服务器控件来编写页面,允许控件根据浏览器决定发送哪种类型的输出,从而允许你将发送 DHTML的控件和客户端脚本用到最新版本的Internet Explorer中,将纯 HTML 3.2内容发送到其它浏览器中。
42、3.3.2 页面事件 在此前提到 ASP.NET已经被从头到脚地重写了,但是并没有指出它是按照面向对象的思路重建的。在对象树的顶部是Page对象,即页面对象,ASP.NET的每个控件、应用程序和页面都是从这个对象中继承来的,也就是说每个页面都是页面对象的一个例示。页面的Load (装载)事件是一个非常重要的事件,如下面的表3代码所示: 表3 使用页面事件 Sub Page_Load(Source As Object, E As EventArgs) code to run when page loads End Sub Sub SubmitButton_Click(Source As Obje
43、ct, E As EventArgs) code to run when button is clicked End Sub Sub Page_Unload(Source As Object, E As EventArgs) code to run when page unloads End Sub 在这里看到了以前在Visual Basic中经常见到的同样的 Load/Unload (装载/卸载)过程。 当页面被装载时,Load事件被激活,这时所有基于服务器的控件都可用。在与用户的交互作用过程中会生成其它事件。最后,当页面被卸载时激活 Unload事件。 第四章 ASP.net图象处理在使用ASP的时候,我们时