.NET3.5 GDI+ 图形操作3

简介: 前言: 本文章抄袭自本人刚刚买的《ASP.NET 3.5从入门到精通》这本书,此书介绍在 http://www.china-pub.com/44991 ,本文章95%与此书的内容完全一样,另5%是我改正一些失误以后加上去的,该书原示例代码只能运行在IE核心的浏览器上,非IE核心浏览器上运行会出现些显示问题,本人更改了其中的一些代码。

      前言: 本文章抄袭自本人刚刚买的《ASP.NET 3.5从入门到精通》这本书,此书介绍在 http://www.china-pub.com/44991 ,本文章95%与此书的内容完全一样,另5%是我改正一些失误以后加上去的,该书原示例代码只能运行在IE核心的浏览器上,非IE核心浏览器上运行会出现些显示问题,本人更改了其中的一些代码。本文章经历昨晚本人五个小时的手打而成(且还未打完,下班回去继续打,想不到我的打字速度退化得这么快,郁闷!!!),俗话说:好记性不如烂笔头,把书的内容手打出来,对手,对脑,都有好处!!!


10.2.4 Brush

Brush通常被称为,用于定义填充图形形状(如矩形、椭圆、饼形、多边形和封闭路径)的内部对象。Brush是一个抽象基类,不能进行实例化。若要创建一个画笔对象,需使用从Brush派生出的类,如SolidBrushTextureBrushLinearGradientBrush

SolidBrush类用于定义单色画笔。画笔用于填充图形形状,如矩形、椭圆、扇形、多边形和封闭路径。下表列举了常用的方法和属性。

System.Drawing.Brushes定义了很多标准笔刷,用户可以直接定义一个蓝色笔刷。

 

System.Drawing.Brush brush = System.Drawing.Brushes.Blue;

 

当然,用户也可以自定义画笔。

// 定义一个红色笔刷
System.Drawing.Brush brush = new System.Drawing.SolidBrush(System.Drawing.Color.Red);

 

TextureBrush类的每个属性都是Brush对象,这种对象使用图像来填充形状的内部,用户可以设置填充的方式。下表例举了常的方法和属性。

 

下面的代码示例演示了用图形填充区域的用法。

 

img_1c53668bcee393edac0d7b3b3daff1ae.gifimg_405b18b4b6584ae338e0f6ecaf736533.gifCode
// Brush图片
string brushfile = Server.MapPath("~/logo.gif");
// 被填充的图片
string file = Server.MapPath("~/Element.jpg");
// 声明TextureBrush对象
System.Drawing.Image brushimg = System.Drawing.Image.FromFile(brushfile);
System.Drawing.TextureBrush texture 
= new System.Drawing.TextureBrush(brushimg);
texture.WrapMode 
= System.Drawing.Drawing2D.WrapMode.Tile;

System.Drawing.Image img 
= System.Drawing.Image.FromFile(file);
System.Drawing.Graphics g 
= System.Drawing.Graphics.FromImage(img); // 创建Graphics对象
g.FillEllipse(texture, new System.Drawing.RectangleF(90.0f,110.0f,100,100)); // 用图形填充
g.Dispose();
// 原书中没有这句,这里要加上这句,如果不加这句则在非IE浏览器显示不出
Response.ContentType = "image/JPEG";
// 将图形加载到Response中
img.Save(Response.OutputStream, System.Drawing.Imaging.ImageFormat.Jpeg);

 

网页运行结果如图:

 

 

10.2.5 Font

Font用于定义特定的文本格式,包括字体、字号和字形属性。

下表列举了常用方法和属性。

 

下面这行代码将构建一个10磅大小的宋体字体。

 

System.Drawing.Font f1  =   new  System.Drawing.Font( " 宋体 " , 10 );

 

10.2.6 Image

Image是为源自BitmapMetafile的类提供功能的抽象基类。下表列举了常用的方法和属性。

 

Image不可以实例化,但可以通过方法来构造:

 

System.Drawing.Image img1  =  System.Drawing.Image.FromFile(Server.MapPath( " ~/logo.gif " ));

 

Image是基类,封装了很多有用的属性和方法,而实际运用时,尤其在生成或者修改图像的时候,一般用其派生类Bitmap表示内存中的图形。Bitmap是用于处理由像素数据定义的图像的对象,是图像处理开发中最常用的对象。用户可以通过多种途径构造Bitmap对象。

 

System.Drawing.Bitmap bmp1  =   new  System.Drawing.Bitmap(Server.MapPath( " ~/logo.gif " ));  //  通过文件构造
System.Drawing.Bitmap bmp2  =   new  System.Drawing.Bitmap( 300 , 200 );  //  构造一个宽300,高200的对象

构造完对象后,可以调用其方法进行操作,比如RotateFlip方法可以实现图像反转,该方法接收RotateFlipType类型的参数,可以的值如下表。

 

比如:

 

img_1c53668bcee393edac0d7b3b3daff1ae.gif img_405b18b4b6584ae338e0f6ecaf736533.gif Code
System.Drawing.Bitmap bmp1 = new System.Drawing.Bitmap(Server.MapPath("~/logo.gif")); // 通过文件构造
bmp1.RotateFlip(System.Drawing.RotateFlipType.Rotate90FlipX); // 水平翻转90度旋转
// 原书中没有这句,这里要加上这句,如果不加这句则在非IE浏览器显示不出
Response.ContentType = "image/JPEG";
bmp1.Save(Response.OutputStream, System.Drawing.Imaging.ImageFormat.Jpeg);

 

 

网页运行如图:

目录
相关文章
|
存储 C# 图形学
超全面的.NET GDI+图形图像编程教程
原文:超全面的.NET GDI+图形图像编程教程   本篇主题内容是.NET GDI+图形图像编程系列的教程,不要被这个滚动条吓到,为了查找方便,我没有分开写,上面加了目录了,而且很多都是源码和图片~ (*^_^*) 本人也为了学习深刻,另一方面也是为了分享给大家,纯手工码了好几天的字,喜欢的...
1107 0
|
图形学
基于Visual C++.NET的GDI+开发教程
GDI+接口是Microsoft Whistler操作系统中的一部分,它是GDI的一个新版本,不仅在GDI基础上添加许多新特性而且对原有的GDI功能进行优化。在为开发人员提供的二维矢量图形、文本、图像处理、区域、路径以及图形数据矩阵等方面构造了一系列相关的类,如Bitmap(位图类)、Brush(画刷类)、Color(颜色类)、Font(字体类)、Graphics(图形类)、Image(图像类)、Pen(画笔类)和Region(区域类)等。
1039 0
|
存储 图形学 Windows
.NET3.5 GDI+ 图形操作1
前言: 本文章抄袭自本人刚刚买的《ASP.NET 3.5从入门到精通》这本书,此书介绍在 http://www.china-pub.com/44991 ,本文章95%与此书的内容完全一样,另5%是我改正一些失误以后加上去的,该书原示例代码只能运行在IE核心的浏览器上,非IE核心浏览器上运行会出现些显示问题,本人更改了其中的一些代码。
1086 0
|
.NET 开发框架 Windows
.NET3.5 GDI+ 图形操作2
前言: 本文章抄袭自本人刚刚买的《ASP.NET 3.5从入门到精通》这本书,此书介绍在 http://www.china-pub.com/44991 ,本文章95%与此书的内容完全一样,另5%是我改正一些失误以后加上去的,该书原示例代码只能运行在IE核心的浏览器上,非IE核心浏览器上运行会出现些显示问题,本人更改了其中的一些代码。
780 0
|
图形学 .NET 开发框架
.NET3.5 GDI+ 图形操作4
前言: 本文章抄袭自本人刚刚买的《ASP.NET 3.5从入门到精通》这本书,此书介绍在 http://www.china-pub.com/44991 ,本文章95%与此书的内容完全一样,另5%是我改正一些失误以后加上去的,该书原示例代码只能运行在IE核心的浏览器上,非IE核心浏览器上运行会出现些显示问题,本人更改了其中的一些代码。
805 0
|
图形学
.NET3.5 GDI+ 图形操作5
前言: 本文章抄袭自本人刚刚买的《ASP.NET 3.5从入门到精通》这本书,此书介绍在 http://www.china-pub.com/44991 ,本文章95%与此书的内容完全一样,另5%是我改正一些失误以后加上去的,该书原示例代码只能运行在IE核心的浏览器上,非IE核心浏览器上运行会出现些显示问题,本人更改了其中的一些代码。
993 0
|
Web App开发 .NET 图形学
.NET3.5 GDI+ 图形操作6(完)
前言: 本文章抄袭自本人刚刚买的《ASP.NET 3.5从入门到精通》这本书,此书介绍在 http://www.china-pub.com/44991 ,本文章95%与此书的内容完全一样,另5%是我改正一些失误以后加上去的,该书原示例代码只能运行在IE核心的浏览器上,非IE核心浏览器上运行会出现些显示问题,本人更改了其中的一些代码。
1061 0
|
API Windows
.Net程序开发中一个较为隐蔽的GDI泄露探析
  最近一直在调试第三方委托开发的医疗输液系统(我接手时,代码已经完成,原则上我只修改接口部分以适应我们的硬件即可,不过调试过程中,该程序本身问题暴露不少),该系统用VB.net开发,该软件的图形界面是花费n多银子专门做的美工,大量的贴图,就是目前的主流PC机配置,也很难在调试模式下走顺溜。
722 0
|
3月前
|
开发框架 前端开发 .NET
ASP.NET CORE 3.1 MVC“指定的网络名不再可用\企图在不存在的网络连接上进行操作”的问题解决过程
ASP.NET CORE 3.1 MVC“指定的网络名不再可用\企图在不存在的网络连接上进行操作”的问题解决过程
38 0