技术开发 频道

简单的C#进行图片操作


【IT168技术文档】

  最近做东西,需要在一个服务器已经存在的图片上,在上面画一些标注(只是简单的圆形矩形文字之类)。以前倒还真没有做过图形操作,不过听说挺简单的。就问了一下,大家说使用Graphics类。
  那么,就可以简单得到下面的代码了。
1 // 得到图片 2 System.Drawing.Image img = System.Drawing.Image.FromFile ( this.TextBox1.Text ); 3 Graphics g = Graphics.FromImage ( img ); 4 Pen p = new Pen ( Color.White, 2 ); 5 g.DrawImage ( img, 10, 10 ); 6 7 // 画圆和文字 8 g.DrawEllipse ( p, 10, 10, 5, 5 ); 9 g.DrawString ( "这里是圆", new Font ( "宋体", 9 ), Brushes.White, new PointF ( 20, 20 ) ); 10 11 // 填充一个圆 12 g.FillEllipse ( Brushes.White, 10, 10, 5, 5 ); 13 14 // 显示到页面上,不生成真正的文件 15 Response.ContentType = "image/gif"; 16 img.Save ( Response.OutputStream, ImageFormat.Jpeg );
  这样在页面上就显示一个图片了。并且画了一个圆。

  PS:用一个笨方法把多个图合并到一个图里面:
1// 合并四张图 2// 96*96的图 3System.Drawing.Image imgBig = System.Drawing.Image.FromFile ( "c:\\qcd_logo2.PNG" ); 4// 48*48的图 5System.Drawing.Image img = System.Drawing.Image.FromFile ( "c:\\qcd_logo.bmp" ); 6Graphics g = Graphics.FromImage ( imgBig ); 7g.DrawImage ( img, 0, 0 ); 8g.DrawImage ( img, 49, 0 ); 9g.DrawImage ( img, 0, 49 ); 10g.DrawImage ( img, 49, 49 );
  PS2:用一个方法截取合并后的图
1// 144*144的图 2 System.Drawing.Image imgBig = System.Drawing.Image.FromFile ( "c:\\qcd_logo2.PNG" ); 3// 48*48的图 4 System.Drawing.Image img = System.Drawing.Image.FromFile ( "c:\\qcd_logo.bmp" ); 5 Graphics g = Graphics.FromImage ( imgBig ); 6 Pen p = new Pen ( Color.Red, 2 ); 7// 全部合并,即3*3 8 g.DrawImage ( img, 0, 0 ); 9 g.DrawImage ( img, 49, 0 ); 10 g.DrawImage ( img, 0, 49 ); 11 g.DrawImage ( img, 49, 49 ); 12 g.DrawImage ( img, 97, 0 ); 13 g.DrawImage ( img, 0, 97 ); 14 g.DrawImage ( img, 97, 97 ); 15 g.DrawImage ( img, 49, 97 ); 16 g.DrawImage ( img, 97, 49 ); 17 g.DrawEllipse ( p, 49, 49, 10, 10 ); 18 g.DrawString ( "这是圆", new Font ( "宋体", 9 ), Brushes.Red, new PointF ( 55, 55 ) ); 19 20// 切换到小图 21 g = Graphics.FromImage ( img ); 22 // 截取的大图范围 23 Rectangle rect = new Rectangle ( 49, 49, 48, 48 ); 24// 截取大图 25 g.DrawImage ( imgBig, 0, 0, rect, GraphicsUnit.Pixel ); 26 27 // 显示到页面上,不生成真正的文件 28 Response.ContentType = "image/gif"; 29 img.Save ( Response.OutputStream, ImageFormat.Jpeg );
0
相关文章