文档章节

使用C#一起来画图

沉默狮
 沉默狮
发布于 2015/06/10 16:36
字数 453
阅读 177
收藏 0

本文类,需要添加引用System.Drawing,并在类中using

几个关键类

Graphics : 图画类,通过这个类对一个图画进行画图

Pen : 笔类,画图的时候要用到它

SolidBrush 固定画刷类,要把它装在笔上,笔才能画出东西来

Font :字型类,当你要写字的时候,就要用到它了

准备

笔,画刷,颜色

先给我们的画刷 brush 上色

 SolidBrush brush = new SolidBrush(System.Color.Green);

笔 = 画刷 + 粗细,我们给他装成一支笔

 Pen pen = new Pen(brush, 3);// 3是笔的粗细,决定画出来的线条粗细

字型,字体,字号

字型 = 字体 + 字号,也是同样组装起来

 Font font = new Font("微软雅黑", 12);// 12是字形的字号

开始画图

创建 Graphics 对象

通过窗体或控件的 CreateGraphics(); 方法来创建

 Graphics g = this.CreateGraphics();

也可以通过图片来创建

Bitmap image = new Bitmap(1,1);//空白图片
Graphics g = Graphics.FromImage(image); // 可以通过一个自建的空白图片,可以是一个已有的图片

画上一大堆谐星的东西

Graphics 有很多的方法,可以用来画各种各样的东西,这个自己慢慢发掘。我常用的就是画框和写字,代码如下:

 g.DrawRectangle(pen, new Rectangle(0,0,3,4));// 画的时候就用上笔了,第二个参数是一个框

 g.DrawString("hello world", font, pen, new PointF(2, 3));// 写字的时候也用上了笔,并指定了字型,第三个参数是写字位置的左上角坐标

Graphics 的方法调用完成之后,相应的更改就已经在创建Graphics的对象中应用。所以只需要回收Graphics对象即可。

 

© 著作权归作者所有

共有 人打赏支持
沉默狮

沉默狮

粉丝 10
博文 54
码字总数 25252
作品 0
成都
程序员
关于c# 画图小问题

请教各位大侠关于c#画图的一个小问题 大部分画图的程序示例都是在画图函数中新建一个bitmap和graphic,然后进行画图,也就是每画一次,都要重信临时新建一个新建一个bitmap和graphic。 我现在...

运动的彩虹
2016/05/31
413
4
C#调用MATLAB画图实现到达过程的模拟

这是一个课题系统中的实验,基于Visual C#和MATLAB的对到达过程模拟生成系统,本文主要记录一下自己实现产生符合log-normal随机数的时间点序列,并调用MATLAB进行画图的过程。界面比较简陋,...

qq_36816909
03/23
0
0
C# 视频监控系列(7):服务器端——封装API(下) (6)

#region 3.7.1.2 LOGO /// /// 3.7.1.2.1数据格式转换 /// 说 明: 将24位bmp格式图像转换为yuv422格式图像。 /// 注意:bmp位图的长宽必须为16的倍数,图像尺寸最大支持128128,4.3版本SDK...

日久不生情
2017/11/15
0
0
Common Lisp 高阶函数学习笔记: function, funcall 和 apply...

Common Lisp 高阶函数学习笔记: function, funcall 和 apply 的用法 目录 0 概述 1 函数 function 的用法 2 函数 funcall 的用法 3 函数 apply 的用法 0 概述(id:0) 高阶函数是 Lisp 的一大特...

FreeBlues
2013/07/30
0
0
C# 音乐播放器中波形显示问题

C#中用到windowsmediaplayer控件。但是要picturebox里面显示播放音乐波形。怎么获得音乐数组然后根据数组内容画图?

yangyang____
2013/12/04
1K
1

没有更多内容

加载失败,请刷新页面

加载更多

JSCH会大量使用服务器内存吗?会

java实现一个需求用到了jsch,发现服务器内存会被占满。 写了个50进程的jsch-sftp测试连接 put一个文件 ExecutorService fixedThreadPool = Executors.newFixedThreadPool(50);for (int j =...

just-coding
8分钟前
0
0
聊聊redis的数据结构的应用

序 本文主要研究一下redis的数据结构的应用 string 最常用的就是incr操作,比如可以用来维护用户在某个抽奖活动的剩余抽奖次数 setnx方法可以用来实现分布式锁 hashmap 可以用来存储session...

go4it
8分钟前
0
0
《将博客搬至CSDN》

搬到csdn

我风依旧
11分钟前
1
0
源码编译安装最新版 Subversion 1.10.x

一、使用包管理器自动安装 官方网站提供了常见 Linux 发行版的安装命令,此处仅以 CentOS、Debian 及 Ubuntu 为例进行说明,其它系统详见官网:https://subversion.apache.org/packages.html...

whoru
15分钟前
0
0
liquibase

今天在看springboot源码时发现一个好东西。 LiquibaseServiceLocatorApplicationListener Liquibase是一个用于跟踪、管理和应用数据库变化的开源的数据库重构工具。它将所有数据库的变化(包...

jack_peng
18分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部