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.添加了一些 ...
随机推荐
- hdu 3853(数学期望入门)
题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=3853 LOOPS Time Limit: 15000/5000 MS (Java/Others) ...
- APUE 线程 - 程序清单
APUE 线程 - 程序清单 程序清单11-1 打印线程ID #include "util.h" #include<pthread.h> pthread_t ntid; ...
- 鸟哥的Linux私房菜-----12、学习使用Shell scripts
- jsp引用JSTL核心标签库
一.引用JSTL 1. JSTL的引入可以让JSP代码中<%%>等代码消失掉,再结合EL表达式,会更加方便以及美观. 2. 各套框架(还没有学习,比如struts,SpringMVC等 ...
- 2016/3/31 ①全选时 下面选项全选中 ② 下面不选中时 全选取消 ③在“” 中 转义字符的使用\ onclick=\"Checkpa(this,'flall')\"; ④区别于分别实现 重点在于两种情况合并实现
testxuanbuxuan.php <!DOCTYPE html> <html lang="en"> <head> <meta char ...
- 2016/2/29 html 思维导图
- C项目实践--贪吃蛇(1)
1.功能需求分析 1.1主要功能 i.游戏欢迎界面 ii.游戏执行功能,包括计算得分 iii.游戏结束界面 1.2游戏基本规则 游戏开始时蛇的长度是4个单位,并且按照当前方向不停地移动.移动范围是CO ...
- Override is not allowed when implementing interface method Bytecode Version Overriding and Hiding Methods
java - @Override is not allowed when implementing interface method - Stack Overflow https://stackove ...
- ZOJ1610 Count the Colors —— 线段树 区间染色
题目链接:https://vjudge.net/problem/ZOJ-1610 Painting some colored segments on a line, some previously p ...
- YTU 2960: 改错题--小鼠标,你要干什吗?
2960: 改错题--小鼠标,你要干什吗? 时间限制: 1 Sec 内存限制: 128 MB 提交: 118 解决: 62 题目描述 鼠标双击不同的图标产生不同的效果,比如双击文档(documen ...