
C# GDI基础教程:Pen、Brush与图像绘制
下载需积分: 3 | 89KB |
更新于2025-06-29
| 137 浏览量 | 3 评论 | 举报
收藏
### C#入门经典 GDI应用知识点
#### 1. GDI+基础
GDI(图形设备接口)是Windows应用程序中用于处理图形输出的API的一部分。GDI+是GDI的一个增强版本,提供了更多的功能和更好的性能。它是.NET Framework中进行图形绘制和图像处理的核心技术之一。在C#中,System.Drawing命名空间提供了使用GDI+进行图形编程的类和方法。
#### 2. Pen类的使用
Pen类在GDI+中用于绘制直线和曲线,它定义了线条的颜色、宽度、样式等属性。Pen类可以用来创建实线、点线、虚线等多种线条样式,以满足不同的绘图需求。在C#中使用Pen类通常涉及以下几个方面:
- 创建Pen实例,指定线条的颜色和宽度。
- 设置线条的各种样式属性,如线帽样式(LineCap)和线段连接样式(LineJoin)。
- 使用Graphics对象的DrawLine、DrawRectangle等方法绘制图形。
示例代码:
```csharp
using System.Drawing;
// 创建一个蓝色的Pen对象,宽度为2
Pen myPen = new Pen(Color.Blue, 2);
// 使用Graphics对象绘制直线
Graphics g = this.CreateGraphics();
g.DrawLine(myPen, new Point(0, 0), new Point(100, 100));
// 释放资源
myPen.Dispose();
```
#### 3. Brush类的使用
Brush类在GDI+中用于填充图形的内部区域。有多种Brush类的派生类,如SolidBrush(实心填充)、HatchBrush(图案填充)、TextureBrush(纹理填充)和PathGradientBrush、LinearGradientBrush(渐变填充)。这些类提供了多种填充方法,让图形看上去更为丰富和具有层次感。
示例代码:
```csharp
using System.Drawing;
// 创建一个红色的SolidBrush对象
Brush myBrush = new SolidBrush(Color.Red);
// 使用Graphics对象填充一个矩形区域
Graphics g = this.CreateGraphics();
g.FillRectangle(myBrush, new Rectangle(10, 10, 100, 100));
// 释放资源
myBrush.Dispose();
```
#### 4. 使用图像进行绘制
在GDI+中,还可以使用图像(Image)类来进行绘制。Image类是一个抽象基类,它有多个具体的子类,比如 Bitmap,它是GDI+中表示位图图像的一个类。可以将图像加载到内存中,然后在窗体或者其他绘制表面中使用Graphics对象的DrawImage方法进行显示。
示例代码:
```csharp
using System.Drawing;
// 加载一张图片
Image myImage = Image.FromFile("path_to_image.jpg");
// 创建Graphics对象进行绘制
Graphics g = this.CreateGraphics();
// 将图片绘制到指定位置
g.DrawImage(myImage, new Point(20, 20));
// 释放资源
myImage.Dispose();
```
#### 5. 综合应用示例
一个典型的GDI+应用可能会涉及到以上几个方面,以下是一个综合使用Pen、Brush以及图像绘制的C#代码示例:
```csharp
using System;
using System.Drawing;
class GDIApp
{
public static void Main()
{
// 创建窗体
Form form = new Form();
form.Text = "GDI+ 绘图示例";
form.Size = new Size(400, 300);
// 创建Graphics对象进行绘制
Graphics g = form.CreateGraphics();
// 使用Pen绘制轮廓线
using (Pen pen = new Pen(Color.Black, 1.5f))
{
// 绘制矩形框
g.DrawRectangle(pen, new Rectangle(50, 50, 200, 100));
}
// 使用Brush填充矩形区域
using (Brush brush = new SolidBrush(Color.Yellow))
{
// 填充矩形区域
g.FillRectangle(brush, new Rectangle(60, 60, 180, 80));
}
// 使用Image绘制图像
Image img = Image.FromFile("path_to_image.jpg");
g.DrawImage(img, new Point(150, 120));
// 显示窗体
form.ShowDialog();
}
}
```
在这个示例中,我们首先创建了一个窗体,并得到了绘图表面的Graphics对象。然后,我们创建了一个Pen对象来绘制一个矩形框的轮廓,并用黄色的Brush对象填充了这个矩形。最后,我们将一幅图像绘制在矩形的上方。以上就是GDI+应用的基础知识,涵盖了C#中进行图形绘制的基本元素和方法。掌握这些知识,可以让开发者在Windows平台上制作出具有丰富视觉效果的应用程序。
相关推荐



















资源评论

俞林鑫
2025.05.22
图像处理方面给出了实用的绘制方法。

张盛锋
2025.03.15
适合初学者了解GDI在C#中的基础应用。

奔跑的楠子
2025.03.12
深入浅出讲解了Pen和Brush的使用技巧。

Rompey
- 粉丝: 0
最新资源
- 仿美团PC端Web开发实践:Vue框架应用
- 探索Andriy1991.github.io的HTML技术实现
- OpenWrt x86_64自动编译固件详解
- Web代理技术:实现高效网络缓存的关键
- 公司年终JS+HTML抽奖程序:快速随机与自动模式
- Java技术分享与交流平台TechGig
- Python数据定价模块的深入分析与应用
- 本地文件搜索工具的开发与应用
- jpegsrc.v9b.tar.gz:JPEG库的新版本发布
- CodeSandbox上实现neogcamp-markNine标记九分法
- 深入探索GitHub的InnerSource开源模型
- 掌握机器学习:Jupyter Notebook中的决策树算法
- 深入解析HTML在github.io的应用与实践
- 深入解析hannahtobiason.github.io中的CSS技术应用
- rsschool-cv:创意履历表模板设计
- TSQL查询技术:mssql-queries存储库解析
- Kotlin开发应用adfmp1h21-pet界面截图教程
- 2021数据三项全能赛事解析与Jupyter Notebook应用
- Java语言环境下的tejun仓库创建详细步骤
- 4-mergaite:HTML文件压缩技术的最新进展
- Navicat12数据库管理工具压缩包发布
- 掌握JavaScript构建全栈应用的精髓
- C语言实现HFizzBuzz算法分析
- 探索DIDIC技术的核心优势与应用