winform GDI基础(一)
1获取画布
(1)从PaintEventArgs类中获取画布
private void Form1_Paint(object sender, PaintEventArgs e)
{
Graphics g = e.Graphics;
}
(2)从Image中获取画布
Bitmap bm = new Bitmap(this.Width, this.Height);
Graphics g = Graphics.FromImage(bm);
(3)使用CreateGraphics创建画布
Graphics g = this.CreateGraphics();
(4)其他方式
从设备上下文的指定句柄创建新的 System.Drawing.Graphics
public static Graphics FromHdc(IntPtr hdc);
从设备上下文的指定句柄和设备的句柄创建新的 System.Drawing.Graphics
public static Graphics FromHdc(IntPtr hdc, IntPtr hdevice);
返回指定设备上下文的 System.Drawing.Graphics
public static Graphics FromHdcInternal(IntPtr hdc);
从窗口的指定句柄创建新的 System.Drawing.Graphics
public static Graphics FromHwnd(IntPtr hwnd);
创建指定 Windows 句柄的新 System.Drawing.Graphics
public static Graphics FromHwndInternal(IntPtr hwnd);
2绘制图像
Graphics g = this.CreateGraphics();
System.Drawing.Pen pen = new System.Drawing.Pen(Color.Red, 2);
g.DrawLine();//画线
g.DrawRectangle();//画矩形
g.DrawEllipse();//画椭圆
g.DrawArc();//画扇形
3抗锯齿处理
g.SmoothingMode = SmoothingMode.HighQuality;//设置抗锯齿
g.CompositingQuality = CompositingQuality.HighQuality;//提升合成图片质量
g.TextRenderingHint = TextRenderingHint.SingleBitPerPixelGridFit;//去掉文字的锯齿
4处理图像
Bitmap bm = new Bitmap(200, 200);
Graphics g = Graphics.FromImage(bm);
System.Drawing.Pen pen = new System.Drawing.Pen(Color.Red, 4);
g.DrawLine(pen,new Point(10,10),new Point(100,100));
bm.Save(Application.StartupPath + @"\1.png");
g.Dispose();
bm.Dispose();
winform GDI基础(一)的更多相关文章
- winform GDI基础(四)简单截屏
Bitmap bitmap = new Bitmap(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height); G ...
- winform GDI基础(二)画带圆角的矩形框
private void Form1_Paint(object sender, PaintEventArgs e) { Graphics g = e.Graphics; g.SmoothingMode ...
- winform GDI基础(三)实现画笔
在程序窗口上使用鼠标画图 private Point pStart, pEnd; private bool isAllowDraw = false; private bool isOpenPen = ...
- WinForm GDI+ 资料收集
UI(User Interface)编程在整个项目开发过程中是个颇为重要的环节,任何好的解决方案若没有良好的用户界面呈现给最终用户,那么就算包含了最先进的技术也不能算是好程序.UI编程体现在两个方面, ...
- Winform 开发基础分层框架
Winform 开发基础分层框架:
- Winform GDI+
什么是GDI+ GDI (Graphics Device Interface), 是属于绘图方面的 API (Application Programming Interface). 因为应用程序不能直 ...
- WinForm GDI+自定义控件总结(一)
前言 由于项目的原因好久没写博客了,也正是项目的原因开始系统的学习WinForm,从而接触到自定义控件的开发.自定义控件的开发有一定的难度,对开发者要求比较高,需要了解Windows运行的机制,熟悉w ...
- 《C# GDI+ 破境之道》:第一境 GDI+基础 —— 第一节:画直线
今天正式开一本新书,<C# GDI+ 破镜之道>,同样是破镜之道系列丛书的一分子. 关于GDI+呢,官方的解释是这样的: GDI+ 是 Microsoft Windows 操作系统的窗体子 ...
- Winform GDI+ 相关资料
在Visual Studio 2010中定义GDI+自定义控件——自定义控件介绍 http://www.cnblogs.com/zhangdong/archive/2010/05/20/1740177 ...
随机推荐
- SQL Server 学习系列之四(SQL 内幕)
SQL Server 学习系列之四(SQL 内幕) SQL Server 学习系列之一(薪酬方案+基础) SQL Server 学习系列之二(日期格式问题) SQL Server 学习系列之三(SQL ...
- GMT时间
GMT:格林尼标准时间 北京时间=GMT时间+8小时
- win32 获取本机网卡信息(MAC地址,IP地址等)
由于一个需求需要获取网卡的MAC地址,就搜了一下,大部分都是COPY来COPY去的一些代码,有很多甚至不能直接运行或有还有内存泄漏.自己查了一下MSDN然后封装了一下: 需要注意,一个机器可能有多个网 ...
- 如何安装搜索引擎Elasticsearch?
最近工作中要用到搜索引擎,由于目前用的搜索引擎是LeanCloud 提供的 ,不太好用,不支持范围等搜索,而且每天还收费30元,请求次数也有限制.基于这些原因,我们只好在自己的服务器上部署搜索引擎了. ...
- [C++] 分治法之棋盘覆盖、循环赛日程表
一.分治的基本思想 将一个难以直接解决的大问题,分割成一些规模较小的相同问题,以便各个击破,分而治之. 对于一个规模为 n 的问题,若问题可以容易地解决,则直接解决,否则将其分解为 k 个规模较小的子 ...
- hihoCoder1296:约瑟夫问题
时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 小Hi和小Ho的班级正在进行班长的选举,他们决定通过一种特殊的方式来选择班长. 首先N个候选人围成一个圈,依次编号为0.. ...
- HTTP-Runoob:HTPP Content-Type
ylbtech-HTTP-Runoob:HTPP Content-Type 1.返回顶部 1. HTTP content-type Content-Type,内容类型,一般是指网页中存在的Conten ...
- web.xml中classpath表示什么样的路径
首先 classpath是指 WEB-INF文件夹下的classes目录 解释classes含义: 1.存放各种资源配置文件 eg.init.properties log4j.properties ...
- linux 学习2 常用命令
1.显示日期的指令: date 2. [Tab]按键---具有『命令补全』不『档案补齐』的功能 3: su和 sudo su用于用户之间的切换. su在不加任何参数,默认为切换到root用户 ...
- 手机的RAM和ROM
RAM是由英文Random Access Memory的首字母构成的,意为随机存储器,即在正常工作状态下可以往存储器中随时读写数据.根据存储单元工作原理的不同,RAM又可分为静态存储器(SRAM)和动 ...