zoukankan      html  css  js  c++  java
  • 简单的C#进行图片操作

      最近做东西,需要在一个服务器已经存在的图片上,在上面画一些标注(只是简单的圆形矩形文字之类)。以前倒还真没有做过图形操作,不过听说挺简单的。就问了一下,大家说使用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, 1010 );
     6        
     7        // 画圆和文字
     8        g.DrawEllipse ( p, 101055 );
     9        g.DrawString ( "这里是圆"new Font ( "宋体"9 ), Brushes.White, new PointF ( 2020 ) );
    10
    11        // 填充一个圆
    12        g.FillEllipse ( Brushes.White, 101055 );
    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, 00 );
     8g.DrawImage ( img, 490 );
     9g.DrawImage ( img, 049 );
    10g.DrawImage ( img, 4949 );

    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, 00 );
     9        g.DrawImage ( img, 490 );
    10        g.DrawImage ( img, 049 );
    11        g.DrawImage ( img, 4949 );
    12        g.DrawImage ( img, 970 );
    13        g.DrawImage ( img, 097 );
    14        g.DrawImage ( img, 9797 );
    15        g.DrawImage ( img, 4997 );
    16        g.DrawImage ( img, 9749 );
    17        g.DrawEllipse ( p, 49491010 );
    18        g.DrawString ( "这是圆"new Font ( "宋体"9 ), Brushes.Red, new PointF ( 5555 ) );
    19
    20// 切换到小图
    21        g = Graphics.FromImage ( img );
    22        // 截取的大图范围
    23        Rectangle rect = new Rectangle ( 49494848 );
    24// 截取大图
    25        g.DrawImage ( imgBig, 00, rect, GraphicsUnit.Pixel );
    26
    27        // 显示到页面上,不生成真正的文件
    28        Response.ContentType = "image/gif";
    29        img.Save ( Response.OutputStream, ImageFormat.Jpeg );

  • 相关阅读:
    字符串 CSV解析 表格 逗号分隔值 通讯录 电话簿 MD
    Context Application 使用总结 MD
    RxJava RxPermissions 动态权限 简介 原理 案例 MD
    Luban 鲁班 图片压缩 MD
    FileProvider N 7.0 升级 安装APK 选择文件 拍照 临时权限 MD
    组件化 得到 DDComponent JIMU 模块 插件 MD
    gradlew 命令行 build 调试 构建错误 Manifest merger failed MD
    protobuf Protocol Buffers 简介 案例 MD
    ORM数据库框架 SQLite 常用数据库框架比较 MD
    [工具配置]requirejs 多页面,多入口js文件打包总结
  • 原文地址:https://www.cnblogs.com/fyan888/p/DrawImage.html
Copyright © 2011-2022 走看看