C#画图——Graphics
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的更多相关文章
- java 画图 Graphics 文字自动换行
/** * 文字超出限定长度自动换行 * * @param g 画布 * @param font 字体样式 * @param text 文字 * @param widthLength 最大长度 (多少 ...
- java画图之曲线拖动
目标:在窗体上按下鼠标按键.然后拖动鼠标,在按下和拖动之间绘制曲线 事件机制 事件源对象:窗体 事件监听方法:addMouseListener(MouseListener l);addMouseMot ...
- java画图之初体验
1.实现画图程序所需的API类 JFrame JButton ActionListener 动作事件接口 ActionEvent ...
- C#后台画图保存为ipg/png的文件
public void Exec1() { string imgurl = @"http://api.senwoo.com/Content/HeadPortrait/" ...
- NET简单的一个画图程序
using System; using System.Drawing; //HttpUtility.UrlEncode /// <summary> ///Curve 的摘要说明 /// & ...
- Java -- AWT 画图,图像处理
1. AWT画图 Graphics类 提供绘制简单图形的方法 更新图片时用到 repaint , update , 程序不应该主动调用paint和update, 这两个方法都应该是由AWT系统负责 ...
- java制作验证码
建立一个web工程
- [C# 开发技巧]实现属于自己的截图工具
[C# 开发技巧]实现属于自己的截图工具 一.引言 之前一直都是写一些C#基础知识的内容的,然而有些初学者可能看完了这些基础知识之后,会有这样一个疑惑的——我了解了这些基础知识之后,我想做一些工具怎么 ...
- 【程序员的吃鸡大法】利用OCR文字识别+百度算法搜索,玩转冲顶大会、百万英雄、芝士超人等答题赢奖金游戏
[先上一张效果图]: 一.原理: 其实原理很简单: 1.手机投屏到电脑: 2.截取投屏画面的题目部分,进行识别,得到题目和三个答案: 3.将答案按照一定的算法,进行搜索,得出推荐答案: 4.添加了一些 ...
随机推荐
- vue - 官方 - 上手
Vue和其它框架一样,有用CDN或本地JavaScript框架,国内我推荐 bootstrap cdn. 为什么很多人选择CDN呢? CDN:内容分发网络(不同区域不同服务器,更快),减少本地服务器压 ...
- SqlServer 经常使用分页方法总结
SqlServer 经常使用分页方法总结 以下演示样例总结了,SqlServer数据库 经常使用分页方法,仅供学习參考 A. 使用 RowNumber 和 Between And 组合分页: /*** ...
- 【Mongodb教程 第十一课 】MongoDB 聚合
聚合操作过程中的数据记录和计算结果返回.聚合操作分组值从多个文档,并可以执行各种操作,分组数据返回单个结果.在SQL COUNT(*)和group by 相当于MongoDB的聚集. aggregat ...
- 怎样将查询到的数据显示在DataGridView中
背景介绍: 数据库中的T_Line_Info表中存放着学生上机的记录,也就是我们须要查询上机记录的表.当中详细内容为: 界面设计例如以下: watermark/2/text/aHR0cDovL2Jsb ...
- Cocos从入门到精通--《创建第一个项目:HelloWorld》
上节课我们解说了cocos2-x v3.7版本号的下载安装,也展示了使用CocosStudio编译不同平台运行程序的方法,大家是不是对新版本号的Cocos引擎充满期待?今天我们就创建一个project ...
- BZOJ 3550 ONTAK2010 Vacation 单纯形
题目大意:给定一个长度为3n的区间.要求选一些数,且随意一段长度为n的区间内最多选k个数.求选择数的和的最大值 单纯形直接搞 注意一个数仅仅能被选一次 因此要加上xi<=1这个约束条件 不明确3 ...
- jupyter环境的安装
1,什么是jupyter notebook? 简介:jupyter notebook是基于网页的用户交互计算机的应用程序,其可被用于全过程计算:开发,文档编写,运行代码,和展示结果 简而言之,Jupy ...
- 20170212-备份ABAP程序
把生产机上所有后续开发的CBO程序都备份下来.以备急用! 用过2种方法:1.写BDC程序,模拟 TCODE:SE38 -->Program --> Utilities(M)-->Mo ...
- ubuntu截图工具及GNOME的使用及类似qq截图快捷键
1:了解gnome参数 gnome-screenshot -h
- HDU2121 Ice_cream’s world II —— 最小树形图 + 不定根 + 超级点
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2121 Ice_cream’s world II Time Limit: 3000/1000 MS (J ...