C#要实现简单的画图功能可以利用Graphics这个类,要使用Graphics必需using命名空间System.Drawing(此名明空间下都是关于图形的操作)。首先创建画布:

Bitmap bmp = new Bitmap(, );
Graphics g = Graphics.FromImage(bmp);

  清除画布的背景色,并且指定颜色填充:

g.Clear(Color.White);

  开始画图:

//画矩形
g.DrawRectangle(new Pen(Color.Red), new Rectangle(, , , ));
//填充扇形
g.FillPie(new SolidBrush(Color.Red), new Rectangle(, , , ), , );
//在画布上写文字
g.DrawString("A", new Font("Times New Roman", ), new SolidBrush(Color.Black), , );

  下面给出完整代码:

 public class GraphicsController : Controller
{
public ActionResult Index()
{
return View();
}
[HttpGet]
public ActionResult CreateGraphics()
{
Bitmap bmp = new Bitmap(, );
//画布
Graphics g = Graphics.FromImage(bmp);
//清除画布背景色,并填充指定色
g.Clear(Color.White);
//画矩形
g.DrawRectangle(new Pen(Color.Red), new Rectangle(, , , ));
//画刷
Brush bs = new SolidBrush(Color.Blue);
//填充扇形
g.FillPie(new SolidBrush(Color.Red), new Rectangle(, , , ), , );
g.FillPie(bs, new Rectangle(, , , ), , );
g.DrawPie(new Pen(bs), new Rectangle(, , , ), , );//画扇形
g.FillPie(new SolidBrush(Color.HotPink), new Rectangle(, , , ), , );
g.DrawString("A", new Font("Times New Roman", ), new SolidBrush(Color.Black), , );
//抗锯齿
g.SmoothingMode = SmoothingMode.AntiAlias;
MemoryStream ms = new MemoryStream();
try
{
bmp.Save(ms, ImageFormat.Gif);
return File(ms.ToArray(), @"image/Gif");
}
catch (Exception)
{
return null;
}
}
}

后台

@{
    Layout = null;
}

<!DOCTYPE html>

<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title>Index</title>
</head>
<body>
    <div>
        <img src="/Bitmap/CreateGraphics" width="1000" height="800" />
    </div>
</body>
</html>

  效果图(好像有点简陋(╯▽╰ )):

  最后推荐一些前辈的总结(比我强太多了):

http://www.cnblogs.com/Jerry-Chou/archive/2012/03/20/2408064.html 

http://www.cnblogs.com/Jerry-Chou/archive/2012/03/21/2409590.html

http://www.cnblogs.com/beyond0309/archive/2008/04/15/1155003.html验证码也可以用这种方式生成

 

C#画图——Graphics的更多相关文章

  1. java 画图 Graphics 文字自动换行

    /** * 文字超出限定长度自动换行 * * @param g 画布 * @param font 字体样式 * @param text 文字 * @param widthLength 最大长度 (多少 ...

  2. java画图之曲线拖动

    目标:在窗体上按下鼠标按键.然后拖动鼠标,在按下和拖动之间绘制曲线 事件机制 事件源对象:窗体 事件监听方法:addMouseListener(MouseListener l);addMouseMot ...

  3. java画图之初体验

    1.实现画图程序所需的API类 JFrame JButton ActionListener              动作事件接口 ActionEvent                        ...

  4. C#后台画图保存为ipg/png的文件

    public void Exec1()        { string imgurl = @"http://api.senwoo.com/Content/HeadPortrait/" ...

  5. NET简单的一个画图程序

    using System; using System.Drawing; //HttpUtility.UrlEncode /// <summary> ///Curve 的摘要说明 /// & ...

  6. Java -- AWT 画图,图像处理

    1. AWT画图  Graphics类  提供绘制简单图形的方法 更新图片时用到 repaint , update , 程序不应该主动调用paint和update, 这两个方法都应该是由AWT系统负责 ...

  7. java制作验证码

    建立一个web工程

  8. [C# 开发技巧]实现属于自己的截图工具

    [C# 开发技巧]实现属于自己的截图工具 一.引言 之前一直都是写一些C#基础知识的内容的,然而有些初学者可能看完了这些基础知识之后,会有这样一个疑惑的——我了解了这些基础知识之后,我想做一些工具怎么 ...

  9. 【程序员的吃鸡大法】利用OCR文字识别+百度算法搜索,玩转冲顶大会、百万英雄、芝士超人等答题赢奖金游戏

    [先上一张效果图]: 一.原理: 其实原理很简单: 1.手机投屏到电脑: 2.截取投屏画面的题目部分,进行识别,得到题目和三个答案: 3.将答案按照一定的算法,进行搜索,得出推荐答案: 4.添加了一些 ...

随机推荐

  1. DB 查询分析器 6.03 ,遨游于不论什么Windows操作系统之上的最棒的数据库client工具

      DB 查询分析器 6.03 ,遨游于不论什么Windows操作系统之上的最棒的数据库client工具 中国本土程序猿马根峰(CSDN专訪马根峰:海量数据处理与分析大师的中国本土程序猿  .03版本 ...

  2. url优化|隐藏index.php

    隐藏index.php   一.codeigniter codeigniter和许多php框架一样,有个单一入口index.php,从url上看,显得很不友好.通过apache的rewirte,是可以 ...

  3. 一起talk C栗子吧(第一百二十四回:C语言实例--内置宏)

    各位看官们,大家好,上一回中咱们说的是显示变量和函数地址的样例,这一回咱们说的样例是:内置宏.闲话休提,言归正转.让我们一起talk C栗子吧! 看官们,我们在编译程序的时候,假设有语法错误,编译器就 ...

  4. QC ALM 11创建域、项目和用户

    一旦HP-ALM安装,我们仅仅能继续创建域.项目和用户使用后的ALM工作.以下是步骤来创建项目.域和用户.       一.创建域 1.对于创建域,第一步是进入站点管理员页面.开展QC使用URL - ...

  5. java方法返回值的变量类型困惑

    一.java program progress of excuting:show in next picture        How about the java virtual machine i ...

  6. 【网站支付PHP篇】thinkPHP集成支付宝支付(担保交易)

    目录 系列说明 开发环境 部署支付宝 支付请求 支付宝返回处理 系列说明 最近在帮朋友的系统安装支付模块(兑换网站积分),现在总结一些开发心得,希望对大家有用.这个系列会讲以下第三方支付平台的集成: ...

  7. mysql命令行爱好者必备工具mycli

    mycli MyCLI is a command line interface for MySQL, MariaDB, and Percona with auto-completion and syn ...

  8. MySQL 5.7 Keywords and Reserved Words

    https://dev.mysql.com/doc/refman/5.7/en/keywords.html#keywords-5-7-detailed-T

  9. android stdio 异常

    1.android studio gradle project sync failed File -> Settings 搜索Gradle 2.eqmu-system-i386未响应   分辨率 ...

  10. Oracle sql执行计划解析

    Oracle sql执行计划解析 https://blog.csdn.net/xybelieve1990/article/details/50562963 Oracle优化器 Oracle的优化器共有 ...