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 ...
随机推荐
- Android UI--提高Android UI体验
1,自定义虚拟键盘 当一个用户被要求在一个文本框输入时希望又怎样的体验? 从用户需求来看,虚拟键盘应该改变以帮助用户输入的数据.这里是一些例子: 如果一个视图是一个电子邮件地址,一个键盘的“@”符号 ...
- [转]html5 video在安卓大部分浏览器包括微信最顶层的问题
能否解决video标签置顶的问题?答案是:不行的. 具体可查看官方解释:http://x5.tencent.com/guide?id=2009 //====================201604 ...
- Linux开放80、8080端口或者开放某个端口
装载系统的时候只开启了22端口.结果再装完Nginx+php+mysql 后不能访问网站. 查看防火墙设置发现没开启80端口 iptables -L -n 由于Linux防火墙默认是关闭的.可以用两种 ...
- StringBuilder、StringBuffer、String区别
相信大家对 String 和 StringBuffer 的区别也已经很了解了,但是估计还是会有很多同志对这两个类的工作原理有些不清楚的地方,今天重新把这个概念给大家复习一下,顺便牵出 J2 ...
- POJ3641(快速幂)
Pseudoprime numbers Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 8529 Accepted: 35 ...
- Python内置函数:get()
文章转载于:https://www.cnblogs.com/wushuaishuai/p/7738118.html(博主:IT技术随笔) 描述 Python 字典 get() 方法和 setdefau ...
- install命令和cp命令的区别
基本上,在Makefile里会用到install,其他地方会用cp命令. 它们完成同样的任务——拷贝文件,它们之间的区别主要如下: 1.最重要的一点,如果目标文件存在,cp会先清空文件后往里写入新文件 ...
- AWS + Stunnel + Squid ***
[需求] 第一,能***. 第二,在企业网络要能突破端口限制. [原理] 利用AWS提供的一年免费EC2服务,搭建一台自己的VPS,在VPS中利用Stunnel与本机建立加密连接,将本地http请求通 ...
- STL容器迭代器失效问题讨论
STL源码剖析---迭代器失效小结 vector迭代器的几种失效的情况: .当插入(push_back)一个元素后,end操作返回的迭代器肯定失效. .当插入(push_back)一个元素后,capa ...
- md5加密(1)
package com.js.ai.modules.pointwall.util; import java.security.MessageDigest; import java.security.N ...