GDI+是一种通用的面向.NET应用程序的绘图模型。GDI+在.NET里面有很多用途,包括向打印机输出文档,在一个Windows应用程序里显示图形,以及在网页里呈现图形。
GDI+编程的核心是System.Drawing.Graphics类。Graphics类封装了一个GDI+绘图表面,它可能是一个窗口、一个打印文档或者一个内存里的位图。
Bitmap bitmap= new Bitmap(200,150);//创建一个空的位图
Graphics g= Graphics.FromImage(bitmap);//创建画布
新建的空位图为黑色可以用Graphics的Clear(Color color)方法将其填充为指定颜色。
若对已有的图片进行修改:
System.Drawing.Image image = System.Drawing.Image.FromFile(Server.MapPath("01.jpg"));
Bitmap bitmap = new Bitmap(image);
Graphics类可以绘制多种基本图形、绘制不同字体的文字。这里重点介绍DrawImage()方法。
DrawImage()方法用于在指定区域绘制已有图像。参数为System.Drawing.Image对象和区域的位置、大小。可以在该区域再绘制基本图形、文字、其他图像来修改、装饰图像。
g.DrawImage(image,new Rectangle(10, 10, 200, 200));//将image绘制在左上角坐标为(10,10),长宽为200的矩形区域
g.DrawImage(image2, new Rectangle(10, 10, 30, 30));//将image2绘制在左上角坐标为(10,10),长宽为30的矩形区域
图像的输出
将图像输出到网页:
System.IO.MemoryStream ms = new System.IO.MemoryStream();//创建储存区为内存的流
bitmap.Save(ms, System.Drawing.Imaging.ImageFormat.Gif);//将图像保存在流中
Response.ClearContent();//清除缓存区中所有内容
Response.ContentType = "image/Gif";//设置输出图片类型
Response.BinaryWrite(ms.ToArray());//写入HTTP流输出到页面。
用这种方法将使页面其他内容无法显示。解决方法是将网页内容写到另一页面,将其中<img>标签的src设为本页面。
<img src="Default.aspx"/>