代码改变世界

初识GDI+绘图

2013-09-10 22:35  明空3306  阅读(266)  评论(0编辑  收藏  举报


    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"/>