C# 中的图形编程

C# 中的图形编程似乎比您想象的更容易或更难。在本文中,您将学习如何以编程方式创建令人惊叹的矢量图形。无论您是将图形创建为当前项目的一部分,还是作为您自己的游戏或应用程序的基础!您将学习轻松创建美丽的视觉效果。让我们开始吧!

本文将涵盖以下主题:

  1. C#矢量图形编程API
  2. 矢量图形的结构
  3. 使用 C# 进行图形编程
  4. 图形编程中的曲线
  5. 多边形和矩形
  6. 如何画线
  7. 如何绘制路径
  8. 绘制填充区域

C# 矢量图形编程 API - 免费下载

为了在 C# 中创建令人惊叹的矢量图形,我们将使用 Aspose.Drawing for .NET API。它是一个跨平台的 2D 图形库,用于以编程方式绘制文本、几何图形和图像。它允许加载、保存和操作支持的文件格式

下载 API 的 DLL 或使用 NuGet 安装它。

PM> Install-Package Aspose.Drawing

矢量图形的结构

矢量图形由几何形状组成:直线、曲线和路径。这些具有各种属性(例如长度和颜色)的对象可以通过 C# 程序进行操作。

使用 C# 进行图形编程

我们可以绘制或绘制各种类型的形状,包括曲线、直线、矩形、填充区域、椭圆和多边形。 API 提供了各种方法来绘制这些形状。我们可以按照以下步骤以编程方式创建各种不同的矢量图形:

  1. 创建 Bitmap 类的对象。
  2. 从位图中初始化 Graphics 类的对象。
  3. 使用所需参数定义 Pen 或 SolidBrush 类对象。
  4. 使用 Graphics 类的特定于形状的方法来绘制所需的形状。
  5. 最后,保存图像。

现在,让我们看看如何在 C# 中执行这些步骤。

使用 C# 进行图形编程的曲线

我们可以使用以下方法绘制圆弧、圆、椭圆或闭合曲线:

  • DrawArc() 方法绘制圆弧。
  • DrawEllipse() 方法来绘制一个椭圆。
  • 绘制闭合曲线的 DrawClosedCurve() 方法。
  • DrawCurve() 方法绘制曲线。

请按照以下步骤绘制曲线形状:

  1. 首先,创建 Bitmap 类的实例。
  2. 接下来,使用来自新创建的 Bitmap 对象的 FromImage() 方法创建 Graphics 类对象。
  3. 然后,定义一个具有指定颜色和大小的 Pen 类对象。
  4. 之后,调用 DrawClosedCurve() 方法绘制闭合曲线。
  5. 或者,重复上述步骤以添加圆弧和椭圆。
  6. 最后,使用 Save() 方法保存输出图像。

以下代码示例展示了如何在 C# 中绘制曲线形状。

// 此代码示例演示如何绘制闭合曲线、圆弧和圆。
// 创建位图
Bitmap bitmap = new Bitmap(1000, 800, System.Drawing.Imaging.PixelFormat.Format32bppPArgb);

// 位图的初始图形
Graphics graphics = Graphics.FromImage(bitmap);

// 定义要绘制的 Pen
Pen penBlue = new Pen(Color.Blue, 4);

// 画一条曲线
graphics.DrawClosedCurve(penBlue, new Point[] { new Point(10, 700), new Point(250, 500), new Point(500, 10), new Point(750, 500), new Point(990, 700) });

// 画弧线
Pen penRed = new Pen(Color.Red, 2);
graphics.DrawArc(penRed, 0, 0, 700, 700, 0, 180);

// 画一个椭圆
Pen penGreen = new Pen(Color.Green, 2);
graphics.DrawEllipse(penGreen, 10, 10, 500, 500);

// 将位图另存为 PNG
bitmap.Save("C:\\Files\\Drawing\\Curves.png");
使用 C# 进行图形编程的曲线

使用 C# 进行图形编程的曲线

使用 C# 进行图形编程中的多边形和矩形

我们可以按照前面提到的步骤绘制多边形和矩形。但是,我们需要在步骤#4中使用以下方法:

  • 用于绘制多边形的 DrawPolygon() 方法。
  • DrawRectangle() 方法绘制一个矩形。

以下代码示例展示了如何在 C# 中绘制多边形和矩形。

// 此代码示例演示如何绘制多边形和矩形。
// 创建位图
Bitmap bitmap = new Bitmap(1000, 800, System.Drawing.Imaging.PixelFormat.Format32bppPArgb);

// 位图的初始图形
Graphics graphics = Graphics.FromImage(bitmap);

// 定义要绘制的 Pen
Pen penBlue = new Pen(Color.Blue, 4);

// 绘制多边形
graphics.DrawPolygon(pen, new Point[] { new Point(100, 100), new Point(500, 700), new Point(900, 100) });

// 画一个矩形
Pen penRed = new Pen(Color.Red, 2);
graphics.DrawRectangle(penRed, 10, 10, 900, 700);

// 将位图另存为 PNG
bitmap.Save("C:\\Files\\Drawing\\Shapes.png");
使用 CSharp 加载位图中的图像

使用 C# 在位图中加载图像

使用 C# 进行图形编程的线条

同样,我们可以按照前面提到的步骤画线。但是,我们需要使用步骤#4 中的 DrawLine() 方法来绘制一条线。

以下代码示例展示了如何在 C# 中绘制线条。

// 此代码示例演示如何绘制一条线。
// 创建位图
Bitmap bitmap = new Bitmap(1000, 800, System.Drawing.Imaging.PixelFormat.Format32bppPArgb);

// 位图的初始图形
Graphics graphics = Graphics.FromImage(bitmap);

// 定义要绘制的 Pen
Pen penBlue = new Pen(Color.Blue, 4);

// 画线
graphics.DrawLine(pen, 10, 700, 500, 10);
graphics.DrawLine(pen, 500, 10, 990, 700);

// 将位图另存为 PNG
bitmap.Save("C:\\Files\\Drawing\\Lines.png");
使用 C# 进行图形编程的线条

使用 C# 进行图形编程的线条

使用 C# 进行图形编程的路径

在矢量图形中,路径表示由起点和终点以及其他点定义的一系列平滑直线。我们可以按照以下步骤绘制路径:

  1. 首先,创建 Bitmap 类的实例。
  2. 接下来,使用 FromImage() 方法从新创建的 Bitmap 对象初始化 Graphics 类对象。
  3. 然后,定义一个具有指定颜色和大小的 Pen 类对象。
  4. 接下来,创建 GraphicsPath 类的实例。
  5. 然后,使用 AddLine() 方法添加行。
  6. 之后,使用 Pen 和 GraphicsPath 对象调用 DrawPath() 方法。
  7. 最后,使用 Save() 方法保存输出图像。

以下代码示例展示了如何在 C# 中绘制路径。

// 此代码示例演示如何绘制路径。
// 创建位图
Bitmap bitmap = new Bitmap(1000, 800, System.Drawing.Imaging.PixelFormat.Format32bppPArgb);

// 位图的初始图形
Graphics graphics = Graphics.FromImage(bitmap);

// 定义要绘制的 Pen
Pen penBlue = new Pen(Color.Blue, 4);

// 初始化图形路径
GraphicsPath path = new GraphicsPath();

// 添加第 1 行
path.AddLine(100, 100, 1000, 400);

// 添加第 2 行
path.AddLine(1000, 600, 300, 600);

// 添加矩形
path.AddRectangle(new Rectangle(500, 350, 200, 400));

// 添加椭圆
path.AddEllipse(10, 250, 450, 300);

// 绘制路径
graphics.DrawPath(pen, path);

// 将位图另存为 PNG
bitmap.Save("C:\\Files\\Drawing\\Shapes.png");
使用 C# 进行图形编程的路径

使用 C# 进行图形编程的路径

使用 C# 在图形编程中填充区域

我们可以按照以下步骤绘制填充区域:

  1. 首先,创建 Bitmap 类的实例。
  2. 接下来,使用 FromImage() 方法从新创建的 Bitmap 对象初始化 Graphics 类对象。
  3. 然后,创建 GraphicsPath 类的实例。
  4. 同时,使用 AddPolygon() 方法添加一个多边形。
  5. 接下来,创建 Region 类的实例。
  6. 然后,添加另一个 GraphicsPath 对象并使用 AddRectangle() 方法添加一个矩形。
  7. 接下来,调用 Exclude() 方法从区域中排除内部路径。
  8. 然后,定义一个具有指定颜色的 SolidBrush 类对象。
  9. 之后,使用 SolidBrush 和 GraphicsPath 对象调用 FillRegion() 方法。
  10. 最后,使用 Save() 方法保存输出图像。

以下代码示例展示了如何在 C# 中绘制填充区域。

// 此代码示例演示如何绘制区域。
// 创建位图
Bitmap bitmap = new Bitmap(1000, 800, System.Drawing.Imaging.PixelFormat.Format32bppPArgb);

// 位图的初始图形
Graphics graphics = Graphics.FromImage(bitmap);

// 添加多边形
path.AddPolygon(new Point[] { new Point(100, 400), new Point(500, 100), new Point(900, 400), new Point(500, 700) });

// 初始化一个区域
Region region = new Region(path);

// 内部图形路径
GraphicsPath innerPath = new GraphicsPath();

// 添加一个矩形
innerPath.AddRectangle(new Rectangle(300, 300, 400, 200));

// 排除内部路径
region.Exclude(innerPath);

// 定义实心画笔
Brush brush = new SolidBrush(Color.Blue);

// 填充区域
graphics.FillRegion(brush, region);

// 将位图另存为 PNG
bitmap.Save("C:\\Files\\Drawing\\Lines.png");
使用 C# 在图形编程中填充区域

使用 C# 在图形编程中填充区域

获得免费临时许可证

您可以获得免费的临时许可证 试用 Aspose.Drawing for .NET,而不受评估限制。

结论

在本文中,我们学习了如何:

  • 创建一个新的位图;
  • 在位图上绘制矩形、椭圆等;
  • 画线和路径;
  • 在 C# 中将位图图像保存为 PNG

除了使用 C# 进行图形编程外,您还可以使用 文档 了解更多关于 Aspose.Drawing for .NET 的信息,并探索 API 支持的各种功能。如有任何歧义,请随时在我们的 免费支持论坛 上与我们联系。

也可以看看