简单的C#进行图片操作
2007-12-21 14:12
211 查看
最近做东西,需要在一个服务器已经存在的图片上,在上面画一些标注(只是简单的圆形矩形文字之类)。以前倒还真没有做过图形操作,不过听说挺简单的。就问了一下,大家说使用Graphics类。
那么,就可以简单得到下面的代码了。
这样在页面上就显示一个图片了。并且画了一个圆。
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 );
那么,就可以简单得到下面的代码了。
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 );
相关文章推荐
- TensorFlow与OpenCV,读取图片,进行简单操作并显示
- C# 对MongoDB 进行增删改查的简单操作实例
- linux下用python进行opencv开发----简单的图片操作
- C#连接SQL Server数据库进行简单操作[转]
- C#中对sqlserver进行增删改查操作(简单易懂)
- python进行opencv开发----简单的图片操作
- C# 对MongoDB 进行增删改查的简单操作 (转)
- Visual Studio 2017中使用正则修改部分内容 如何使用ILAsm与ILDasm修改.Net exe(dll)文件 C#学习-图解教程(1):格式化数字字符串 小程序开发之图片转Base64(C#、.Net) jquery遍历table为每一个单元格取值及赋值 。net加密解密相关方法 .net关于坐标之间一些简单操作
- 黄聪:C# web word文档操作,任意指定位置插入图片,表格简单操作
- C#操作数据库进行简单的增加修改操作
- 黄聪:C# web word文档操作,任意指定位置插入图片,表格简单操作
- C#实现多级子目录Zip压缩解压实例 NET4.6下的UTC时间转换 [译]ASP.NET Core Web API 中使用Oracle数据库和Dapper看这篇就够了 asp.Net Core免费开源分布式异常日志收集框架Exceptionless安装配置以及简单使用图文教程 asp.net core异步进行新增操作并且需要判断某些字段是否重复的三种解决方案 .NET Core开发日志
- C# 对MongoDB 进行增删改查的简单操作
- c#使用API进行模拟鼠标点击 底层操作同样简单
- TensorFlow与OpenCV,读取图片,进行简单操作并显示
- 使用微软Kinect进行手势识别操作的一个简单范例(2)(WPF-C#)
- C# 对MongoDB 进行增删改查的简单操作
- C#连接SQL Server数据库进行简单操作
- C# 对MongoDB 进行增删改查的简单操作
- C# 对MongoDB 进行增删改查的简单操作