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.添加了一些 ...
随机推荐
- php进一法取整、四舍五入取整、忽略小数等的取整数方法大全
PHP取整数函数常用的四种方法,下面收集了四个函数:经常用到取整的函数,今天小小的总结一下!其实很简单,就是几个函数而已--主要是:ceil,floor,round,intval PHP取整数函数常用 ...
- 【转】TestNG常用注解
http://blog.csdn.net/d6619309/article/details/52435084 TestNG的注解大部分用在方法级别上.常用的注解列举如下: 1. Before类别和Af ...
- 多媒体开发之---h.264 rtsp网络流测试流
rtsp://218.204.223.237:554/live/1/66251FC11353191F/e7ooqwcfbqjoo80j.sdp 珠海拱北
- [IT学习]Greatwall
1.evilcos 优雅 过城墙 如果没这个开源的关键解决方案怎么办呢?我给你一个永恒思路,技术贴请看: http://www.ibm.com/developerworks/cn/linux/l-cn ...
- mysql 时间间隔计算
业务需求说明 早8:30点执行该sql,写入定时脚本 [在稳定前,需要手动复检] INSERT INTO test_error ( url, no_open_times, no_ad_times, o ...
- Golang1.8编译静态库给C使用
Go实例代码: package main import ( "fmt" ) import "C" //export Printf func Printf(for ...
- 用过滤器Filter判断用户是否登陆
用过滤器Filter判断用户是否登陆 WEB.XML <!-- 用户session的 键 sessionKEY --> <context-param> <param- ...
- 演练:使用属性自定义 DataGrid 控件
演练:使用属性自定义 DataGrid 控件 Silverlight 此主题尚未评级 - 评价此主题 Silverlight DataGrid 控件支持常用表格式设置选项,例如交替显示不同的行 ...
- Jquery与Dom对象相互转化
Jquery与Dom对象相互转化 jQurey对象和DOM对象的相互转换 在讨论jQurey对象和DOM对象的相互转换之前,我们先约定定义变量的风格.如果我们获取的对象是jQuery对象,那么我们 ...
- mac idea 内存
vim /Applications/IntelliJ\ IDEA.app/Contents/bin/idea.vmoptions -Xms512m -Xmx2048m -XX:ReservedCode ...