深入c#GDI+简单绘图的具体操作步骤(一)
c# 简单 深入 具体 绘图 操作步骤 gdi
2023-06-13 09:14:54 时间
最近对GDI+这个东西接触的比较多,也做了些简单的实例,比如绘图板,仿QQ截图等.
最早接触这个类,是因为想做仿QQ截图的效果.巧的很,学会了如何做截图后,.NET课堂上老师也正巧要讲关于c#绘图方面的知识,并且我自己又在网上学习金老师的培训班,也是要用到这个类.在学习中有一些体会,所以准备把这些体会记下来,因为内容比较多,可能我会分几次写.
废话不多说了,我们先来认识一下这个GDI+,看看它到底长什么样.
GDI+:GraphicsDeviceInterfacePlus也就是图形设备接口,提供了各种丰富的图形图像处理功能;在C#.NET中,使用GDI+处理二维(2D)的图形和图像,使用DirectX处理三维(3D)的图形图像,图形图像处理用到的主要命名空间是System.Drawing:提供了对GDI+基本图形功能的访问,主要有Graphics类、Bitmap类、从Brush类继承的类、Font类、Icon类、Image类、Pen类、Color类等.
大概了解了什么是GDI+后,我们来看一下绘图要用到的主要工具,要画图,肯定要画板吧,在C#中画板可以通过Graphics这个类来创建,有了画板,总得弄个笔什么之类的吧,不然怎么画呀,难不成我们用手指画.笔又可以分好多种类,比如铅笔,画刷等.它们的区别主要是铅笔可以用来画线条,而画刷呢,嘿嘿,自己考虑下.在c#中我们可以用Pen,Brush类来实现类似功能.颜料则自然是用Color类了.
有了工具,我们就可以开始动手了!(所需命名空间:usingSystem.Drawing;)
实现效果:在空白窗体中画基本图形
首先准备一个画板:
创建一个画板主要有3种方式:
A:在窗体或控件的Paint事件中直接引用Graphics对象
B:利用窗体或某个控件的CreateGraphics方法
C:从继承自图像的任何对象创建Graphics对象
这次我们就先以A为例说明问题:
复制代码代码如下:
最早接触这个类,是因为想做仿QQ截图的效果.巧的很,学会了如何做截图后,.NET课堂上老师也正巧要讲关于c#绘图方面的知识,并且我自己又在网上学习金老师的培训班,也是要用到这个类.在学习中有一些体会,所以准备把这些体会记下来,因为内容比较多,可能我会分几次写.
废话不多说了,我们先来认识一下这个GDI+,看看它到底长什么样.
大概了解了什么是GDI+后,我们来看一下绘图要用到的主要工具,要画图,肯定要画板吧,在C#中画板可以通过Graphics这个类来创建,有了画板,总得弄个笔什么之类的吧,不然怎么画呀,难不成我们用手指画.笔又可以分好多种类,比如铅笔,画刷等.它们的区别主要是铅笔可以用来画线条,而画刷呢,嘿嘿,自己考虑下.在c#中我们可以用Pen,Brush类来实现类似功能.颜料则自然是用Color类了.
有了工具,我们就可以开始动手了!(所需命名空间:usingSystem.Drawing;)
实现效果:在空白窗体中画基本图形
首先准备一个画板:
创建一个画板主要有3种方式:
B:利用窗体或某个控件的CreateGraphics方法
C:从继承自图像的任何对象创建Graphics对象
这次我们就先以A为例说明问题:
privatevoidForm1_Paint(objectsender,PaintEventArgse)
{
Graphicsg=e.Graphics;//创建画板,这里的画板是由Form提供的.
}
然后,我们要只笔:
privatevoidForm1_Paint(objectsender,PaintEventArgse)
{
Graphicsg=e.Graphics;//创建画板,这里的画板是由Form提供的.
Penp=newPen(Color.Blue,2);//定义了一个蓝色,宽度为的画笔
}
接下来我们就可以来画画了.
privatevoidForm1_Paint(objectsender,PaintEventArgse)
{
Graphicsg=e.Graphics;//创建画板,这里的画板是由Form提供的.
Penp=newPen(Color.Blue,2);//定义了一个蓝色,宽度为的画笔
g.DrawLine(p,10,10,100,100);//在画板上画直线,起始坐标为(10,10),终点坐标为(100,100)
g.DrawRectangle(p,10,10,100,100);//在画板上画矩形,起始坐标为(10,10),宽为,高为
g.DrawEllipse(p,10,10,100,100);//在画板上画椭圆,起始坐标为(10,10),外接矩形的宽为,高为
}
效果图如下所示:
相关文章
- C#设计模式——(创建型-简单工厂设计模式)
- C#多线程
- C# 处理透明问题[通俗易懂]
- c#语言简介_简单介绍自己
- C#-接口
- c#面试题抽象类和接口的区别-Java软件工程师的面试题及答案
- dotnet C# 使用 Vortice 支持 Direct2D1 离屏渲染
- .NET/ASP.NET/C#/WCF/SQL Server/My SQL/Java/JSP/JDBC/Spring/Spring MVC/PHP/Python/Ruby/Shell/Agile/CSS/HTML/HTTP/Unix/Linux大量PDF书籍/电子书籍下载, Effective Java 下载详解编程语言
- 用C#对ADO.NET数据库完成简单操作的方法
- c#曲线图生成代码
- C#一个WCF简单实例
- C#汉字转化拼音的简单实例代码
- 深入c#GDI+简单绘图的具体操作步骤(二)
- 如何让C#、VB.NET实现复杂的二进制操作
- C#对MongoDB进行增删改查的简单操作实例
- c#控件截图的简单实例
- c#文件名/路径处理方法示例
- C#TreeView读取数据库简单实例
- 可替代log4j日志的c#简单日志类队列实现类代码分享
- c#winform时钟的实现代码
- C#调用API函数弹出映射网络驱动器对话框问题
- C#List中FindAll用法的一些简单示例
- jquery+ajax+C#实现无刷新操作数据库数据的简单实例
- C#文件操作的简单实例
- js模拟C#中List的简单实例
- C#中float的取值范围和精度分析
- 基于C#实现一个最简单的HTTP服务器实例
- Redis总结笔记(二):C#连接Redis简单例子
- C#生成条形码图片的简单方法
- C#实现装箱与拆箱操作简单实例
- C#中ExecuteNonQuery()返回值注意点分析
- C#简单多线程同步和优先权用法实例
- C#中datatable序列化与反序列化实例分析