您的位置:首页 > 编程语言 > C#

简单的C#进行图片操作

2007-12-21 14:12 211 查看
  最近做东西,需要在一个服务器已经存在的图片上,在上面画一些标注(只是简单的圆形矩形文字之类)。以前倒还真没有做过图形操作,不过听说挺简单的。就问了一下,大家说使用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 ) );

// 填充一个圆

g.FillEllipse ( Brushes.White, 10, 10, 5, 5 );

// 显示到页面上,不生成真正的文件

Response.ContentType = "image/gif";

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 );

g.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 );

g.DrawImage ( img, 0, 49 );

g.DrawImage ( img, 49, 49 );

g.DrawImage ( img, 97, 0 );

g.DrawImage ( img, 0, 97 );

g.DrawImage ( img, 97, 97 );

g.DrawImage ( img, 49, 97 );

g.DrawImage ( img, 97, 49 );

g.DrawEllipse ( p, 49, 49, 10, 10 );

g.DrawString ( "这是圆", new Font ( "宋体", 9 ), Brushes.Red, new PointF ( 55, 55 ) );

// 切换到小图

g = Graphics.FromImage ( img );

// 截取的大图范围

Rectangle rect = new Rectangle ( 49, 49, 48, 48 );

// 截取大图

g.DrawImage ( imgBig, 0, 0, rect, GraphicsUnit.Pixel );

// 显示到页面上,不生成真正的文件

Response.ContentType = "image/gif";

img.Save ( Response.OutputStream, ImageFormat.Jpeg );
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐