最近做东西,需要在一个服务器已经存在的图片上,在上面画一些标注(只是简单的圆形矩形文字之类)。以前倒还真没有做过图形操作,不过听说挺简单的。就问了一下,大家说使用Graphics类。
那么,就可以简单得到下面的代码了。

 1简单的C#进行图片操作        // 得到图片
 2简单的C#进行图片操作        System.Drawing.Image img = System.Drawing.Image.FromFile ( this.TextBox1.Text );
 3简单的C#进行图片操作        Graphics g = Graphics.FromImage ( img );
 4简单的C#进行图片操作        Pen p = new Pen ( Color.White, 2 );
 5简单的C#进行图片操作        g.DrawImage ( img, 1010 );
 6简单的C#进行图片操作        
 7简单的C#进行图片操作        // 画圆和文字
 8简单的C#进行图片操作        g.DrawEllipse ( p, 101055 );
 9简单的C#进行图片操作        g.DrawString ( "这里是圆"new Font ( "宋体"9 ), Brushes.White, new PointF ( 2020 ) );
10简单的C#进行图片操作
11简单的C#进行图片操作        // 填充一个圆
12简单的C#进行图片操作        g.FillEllipse ( Brushes.White, 101055 );
13简单的C#进行图片操作
14简单的C#进行图片操作        // 显示到页面上,不生成真正的文件
15简单的C#进行图片操作        Response.ContentType = "image/gif";
16简单的C#进行图片操作        img.Save ( Response.OutputStream, ImageFormat.Jpeg );
这样在页面上就显示一个图片了。并且画了一个圆。

PS:用一个笨方法把多个图合并到一个图里面:
 1简单的C#进行图片操作// 合并四张图
 2简单的C#进行图片操作// 96*96的图
 3简单的C#进行图片操作System.Drawing.Image imgBig = System.Drawing.Image.FromFile ( "c:\\qcd_logo2.PNG" );
 4简单的C#进行图片操作// 48*48的图
 5简单的C#进行图片操作System.Drawing.Image img = System.Drawing.Image.FromFile ( "c:\\qcd_logo.bmp" );
 6简单的C#进行图片操作Graphics g = Graphics.FromImage ( imgBig );
 7简单的C#进行图片操作g.DrawImage ( img, 00 );
 8简单的C#进行图片操作g.DrawImage ( img, 490 );
 9简单的C#进行图片操作g.DrawImage ( img, 049 );
10简单的C#进行图片操作g.DrawImage ( img, 4949 );

PS2:用一个方法截取合并后的图
 1简单的C#进行图片操作// 144*144的图
 2简单的C#进行图片操作        System.Drawing.Image imgBig = System.Drawing.Image.FromFile ( "c:\\qcd_logo2.PNG" );
 3简单的C#进行图片操作// 48*48的图
 4简单的C#进行图片操作        System.Drawing.Image img = System.Drawing.Image.FromFile ( "c:\\qcd_logo.bmp" );
 5简单的C#进行图片操作        Graphics g = Graphics.FromImage ( imgBig );
 6简单的C#进行图片操作        Pen p = new Pen ( Color.Red, 2 );
 7简单的C#进行图片操作// 全部合并,即3*3
 8简单的C#进行图片操作        g.DrawImage ( img, 00 );
 9简单的C#进行图片操作        g.DrawImage ( img, 490 );
10简单的C#进行图片操作        g.DrawImage ( img, 049 );
11简单的C#进行图片操作        g.DrawImage ( img, 4949 );
12简单的C#进行图片操作        g.DrawImage ( img, 970 );
13简单的C#进行图片操作        g.DrawImage ( img, 097 );
14简单的C#进行图片操作        g.DrawImage ( img, 9797 );
15简单的C#进行图片操作        g.DrawImage ( img, 4997 );
16简单的C#进行图片操作        g.DrawImage ( img, 9749 );
17简单的C#进行图片操作        g.DrawEllipse ( p, 49491010 );
18简单的C#进行图片操作        g.DrawString ( "这是圆"new Font ( "宋体"9 ), Brushes.Red, new PointF ( 5555 ) );
19简单的C#进行图片操作
20简单的C#进行图片操作// 切换到小图
21简单的C#进行图片操作        g = Graphics.FromImage ( img );
22简单的C#进行图片操作        // 截取的大图范围
23简单的C#进行图片操作        Rectangle rect = new Rectangle ( 49494848 );
24简单的C#进行图片操作// 截取大图
25简单的C#进行图片操作        g.DrawImage ( imgBig, 00, rect, GraphicsUnit.Pixel );
26简单的C#进行图片操作
27简单的C#进行图片操作        // 显示到页面上,不生成真正的文件
28简单的C#进行图片操作        Response.ContentType = "image/gif";
29简单的C#进行图片操作        img.Save ( Response.OutputStream, ImageFormat.Jpeg );

相关文章: