图形图像编程

第15章图形图像编程
在Web应用中,良好的图形图像的运用能够提升网站的友好度和易用性。.NET Framewor k提供了图形图像编程的方法,开发人员可以运用图形图像编程技术进行良好的Web应用中图形图像布局和编程,也可以通过GDI+实现类似Photoshop的功能。
15.1图形图像基础
使用图形图像可以进行良好的页面布局,在现有的很多Web应用中,其应用程序的页面布局经常需要使用图像,这样能够让页面整体效果更加友好。用户会对界面友好的应用程序印象深刻从而会进行回访。ASP.NET不仅能够进行图形图像显示,还能够使用GDI+进行图形图像的绘制。
15.1.1图像布局
在页面布局中,很多设计人员喜欢使用CSS设计,这样能够简化页面代码,将页面布局代码和页面代码相分离,从而提高了维护性。虽然随着技术的发展,越来越多的动态生成页面布局,以及动态生成图像的方法也越来越多的被开发人员和设计人员所认知,但是开发人员和设计人员还是比较喜欢使用CSS和IMG标签进行页面布局,这是因为CSS和IMG标签都比较简单,可以说是“轻量级”的,即不需要页面进行逻辑处理也不需要动态生成。
1.IMG标签
IMG标签是图像标签,IMG标签属于HTML控件,在Web应用中可以看到在页面中包含大量的IMG 标签用于图形图像显示,示例代码如下所示。
<body>
流行音乐论坛<img src="autom.jpg"/>
</body>
上述代码显式了一个名为autom的JPG图像到页面中,如图15-1所示。
图15-1插入图片
使用IMG标签能够轻松的为网页添加图片,IMG标签包括以下常用属性:
q Src:图片的地址,可以是图片的相对地址也可以是绝对地址。
q Width:设定图片的宽度。
q Height:设定图片的高度。
q Alt:当图片显示不了时提示的字符。
q Bor der:图片的边框的宽度。
q Align:图片的周片文字的对齐方式。
q Title:当鼠标放在图片上出现的提示字符。
开发人员能够通过编写Width和Height属性进行图像的大小控制,也可以编写Alt属性当图片显示不了时进行提示,如图15-2和图15-3所示。
图15-2Width属性图15-3Alt属性
2.CSS
通过CSS能够使用图像进行页面布局和样式控制。当需要使背景呈现渐变效果时,无需使用JavaScr ipt 进行控制,可以直接使用CSS和图像进行搭配使用即可。CSS背景属性包括:
q背景颜属性(background-color):该属性为HTML元素设定背景颜。
q背景图片属性(background-image):该属性为HTML元素设定背景图片。
q背景重复属性(background-repeat):该属性和background-image属性连在一起使用,决定背景图片是否重复。如果只设置background-image属性,没设置background-r epeat属性,在缺省状态下,图片既x轴重复,又y轴重复。
郑州管城中医院癫痫科
q背景附着属性(background-attachment):该属性和background-image属性连在一起使用,决定图
片是跟随内容滚动,还是固定不动。
q背景位置属性(background-position):该属性和backgr ound-image属性连在一起使用,决定了背景图片的最初位置。
q背景属性(background):该属性是设置背景相关属性的一种快捷的综合写法。
为了方便进行页面背景布局,可以使用CSS背景属性,示例代码如下所示。
<body >
<div >
编写内容
</div>
</body>
上述代码将BODY标签样式编写为背景颜为#6094d7、背景图片编写为bg.jpg并且背景图片按照x 轴重复。在body标签下方包含一个DIV标签,该标签作为主样式进行内容编写,编写内容后如图15-4所示。
图15-4使用图形进行布局
3.JavaScript进行图像编程
HTML图像控件支持JavaScr ipt进行图像操作,可以为图像控件进行事件处理,JavaScr ipt代码如下所示。
<script type="text/javascript">
warp
function cut()
{
var ElementById("pic1")//获取ID为pic1的图片的属性
pic.width=100;//设置图片的宽度
蔡昌健pic.height=100;//设置图片的高度
}
平安培训系统
</script>
上述代码获取图片ID为pic1的图片属性,当触发该事件后,ID为pic1的图片的宽度和高度将变为100。为了让图片被单击时触发该事件,则应该在IMG标签中声明该事件,图片相应的代码如下所示。
<img alt=""height="323"src="autom.jpg"width="500"onclick="cut()"id="pic1"/>
上述代码定义了事件onclick并定义了图片id为pic1,运行后如图15-5和图15-6所示。
图15-5原始图片图15-6触发JavaScript事件后
使用IMG标签进行图形图像编程是非常简单的方法。IMG标签和CSS配合能够进行页面布局,IMG 标签和JavaScr ipt进行配合能够进行图形图像的处理,所以IMG标签是非常容易被学习和使用的。在Web 应用开发中,大量的IMG被使用也说明IMG标签是一种高效率、门槛低的图形图像编程方法。
15.1.2GDI+简介
虽然通过IMG标签和CSS、J avaScript相配合能够进行图形图像开发,但是其功能有限,并不能够进行
高级的图形图像开发。高级的图形图像开发有点类似与Photoshop中图形处理,在ASP.NET中,可以使用强大的GDI+进行图形图像开发,实现类似Photoshop中图形处理的功能。
门诊GDI+是Windows XP中的一个子系统,它主要负责在显示屏幕和打印设备输出有关信息,它是一组通过C++类实现的应用程序编程接口。GDI+的前身是GDI,在C++应用程序开发中,C++开发人员经常需要使用GDI进行窗口的绘制与重绘,在Vista操作系统之后的操作系统中,微软对图形图像编程进行了更新,在Vista等系统中,大量的使用了半透明、渐变、边缘模糊化等效果,这就要求在编程中强化图形图像渲染,如图15-7所示。
图15-7Vista特效
为了适应更高的用户要求和用户体验的要求,微软对GDI进行了升级,就成为GDI+。GDI+不仅能够在C++开发当中使用,也能够在.NET中使用GDI+强大的绘图效果。GDI+相比与GDI,进行了一些加强,这些加强功能如下所示。
q渐变的画刷(Gradient Brushes):GDI+允许开发人员使用渐变的画刷来绘制线条、图形以及外观。
q基数样条函数(Car dinal Splines):GDI+支持基数样条函数而GDI不支持,基数样条能够防止锯齿的出现,使得窗口以及图形的绘制能够平滑过渡。
q持久路径对象(Persistent Path Objects):在GDI中,绘制路径在窗口更改需要通过重绘来保持图形的持久化,而在GDI+中,可以通过创建对个对象来持久化。
q变形和矩阵对象(Transfor mations&Matr ix Object):GDI+提供了强大的矩阵对象,开发人员可以通过矩阵对象进行图形的翻转、平移和缩放。
q可伸缩区域(Scalable Regions):GDI+允许在一定的范围内进行任何图形变换。
GDI+不仅包括这些新特性,还包括混合以及等多种图像类型支持等特性。ASP.NET相对于ASP的强大之处就在于ASP.NET可以使用GDI+进行图形图像编程,实现不同的Web应用功能。
15.1.3绘制线条示例
通过GDI+能够在Web应用中绘制线条,如果需要使用GDI+,则首先需要引用命名空间System.Dr awing,示例代码如下所示。
using System.Drawing;//使用绘图命名空间
使用了命名空间后,就能够使用System.Dr awing中的方法进行线条绘制,示例代码如下所示。
protected void Page_Load(object sender,EventArgs e)
{
Bitmap MyImage=new Bitmap(400,400);//创建Bitmap对象
Graphics gr=Graphics.FromImage(MyImage);//创建绘图对象
Pen pen=new Pen(Color.Green,10);//创建画笔对象
gr.Clear(Color.WhiteSmoke);//格式化画布
gr.DrawLine(pen,50,200,400,20);//绘制直线
MyImage.Save(Response.OutputStream,System.Drawing.Imaging.ImageFormat.Jpeg);//输出
MyImage.Dispose();//释放对象
gr.Dispose();
}
上述代码绘制了使用GDI+的Gr aphice类的对象进行线条的绘制,当页面被载入时则会开始绘制线条。
当线条开始绘制时,首先需要创建一个Bitmap对象,Bitmap对象处理由像素定义的图像对象,示例代码如下所示。
Bitmap MyImage=new Bitmap(400,400);//创建Bitmap对象上述代码创建了一个Bitmap对象并定义该对象区域为400*400,Bitmap就像画布。Gr aphice对象能够在该区域内绘制图形图像,示例代码如下所示。
Graphics gr=Graphics.FromImage(MyImage);//创建绘图对象定义了Graphice对象后就需要创建Pen对象进行绘制,Pen对象就像画笔,能够在画布上绘制图形,示例代码如下所示。
Pen pen=new Pen(Color.Green,10);//创建画笔对象上述代码定义了画笔的颜和宽度,定义画笔后就需要清除整个绘图面并进行背景颜填充,示例代码如下所示。
gr.Clear(Color.WhiteSmoke);//格式化画布填充背景后,就能够使用Graphice的DrawLine方法进行线条绘制,示例代码如下所示。
gr.DrawLine(pen,50,200,400,20);//绘制直线上述代码则会在“画布”上绘制线条,运行后如图15-8所示。
图15-8绘制线条
通过使用GDI+的Graphice类能够在页面中绘制图形,Graphice类还能够处理图片,实现锐化、底片等效果,Graphice类将在后面的章节详细讲到。
15.1.4.NET Framework绘图类
GDI+包括很多的类,结构和枚举用于为开发人员提供快速进行图形图像开发提供保障和指导。
1.命名空间
GDI+包括很多的类、结构和枚举用于为开发人员提供图形编程,这些类、结构和枚举都定义在命名空间中,这些命名控件如下所示。
q System.Dr awing:提供对GDI+基本图形图像功能的访问,Gr aphice包含在此命名空间中。
q System.Dr awing.Dr awing2D:提供高级的二维和矢量图形功能。
q System.Dr awing.Imaging:提供高级的图像处理功能。

本文发布于:2024-09-21 17:32:08,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/160757.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:进行   使用   图形图像   图片   能够   代码   绘制
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议