C# 中的圖形編程可能看起來比您想像的更容易或更難。在本文中,您將學習如何以編程方式創建令人驚嘆的矢量圖形。無論您是將圖形創建作為當前項目的一部分,還是作為您自己的遊戲或應用程序的基礎!您將學會輕鬆創建精美的視覺效果。讓我們開始吧!
本文應涵蓋以下主題:
C# 矢量圖形編程 API - 免費下載
要在 C# 中創建令人驚嘆的矢量圖形,我們將使用 Aspose.Drawing for .NET API。它是一個跨平台的 2D 圖形庫,用於以編程方式繪製文本、幾何圖形和圖像。它允許加載、保存和操作支持的文件格式。
請 下載 API 的 DLL 或使用 NuGet 安裝它。
PM> Install-Package Aspose.Drawing
矢量圖形的結構
矢量圖形由幾何形狀組成:直線、曲線和路徑。這些具有各種屬性(例如長度和顏色)的對象可以由 C# 程序進行操作。
使用 C# 進行圖形編程
我們可以繪製或繪製各種類型的形狀,包括曲線、直線、矩形、填充區域、橢圓和多邊形。 API 提供了多種繪製這些形狀的方法。我們可以按照以下步驟以編程方式創建各種不同的矢量圖形:
- 創建 Bitmap 類的對象。
- 從位圖中初始化 Graphics 類的對象。
- 使用所需參數定義 Pen 或 SolidBrush 類對象。
- 使用 Graphics 類的特定於形狀的方法來繪製所需的形狀。
- 最後,保存圖像。
現在,讓我們看看如何在 C# 中執行這些步驟。
使用 C# 進行圖形編程中的曲線
我們可以使用以下方法繪製圓弧、圓、橢圓或閉合曲線:
- DrawArc() 方法繪製圓弧。
- DrawEllipse() 方法繪製橢圓。
- DrawClosedCurve() 方法繪製閉合曲線。
- DrawCurve() 方法繪製曲線。
請按照以下步驟繪製曲線形狀:
- 首先,創建 Bitmap 類的實例。
- 接下來,使用 FromImage() 方法從新創建的 Bitmap 對象創建 Graphics 類對象。
- 然後,定義一個具有指定顏色和大小的 Pen 類對象。
- 之後,調用 DrawClosedCurve() 方法繪製閉合曲線。
- 或者,重複上述步驟以添加圓弧和橢圓。
- 最後,使用 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# 進行圖形編程中的多邊形和矩形
我們可以按照前面提到的步驟繪製多邊形和矩形。但是,我們需要在第 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");
使用 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# 進行圖形編程的路徑
在矢量圖形中,路徑表示由起點和終點以及其他點定義的一系列平滑直線。我們可以按照以下步驟繪製路徑:
- 首先,創建 Bitmap 類的實例。
- 接下來,使用 FromImage() 方法從新創建的 Bitmap 對像初始化 Graphics 類對象。
- 然後,定義一個具有指定顏色和大小的 Pen 類對象。
- 接下來,創建 GraphicsPath 類的一個實例。
- 然後,使用 AddLine() 方法添加行。
- 之後,使用 Pen 和 GraphicsPath 對象調用 DrawPath() 方法。
- 最後,使用 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#在圖形編程中填充區域
我們可以按照以下步驟繪製填充區域:
- 首先,創建 Bitmap 類的實例。
- 接下來,使用 FromImage() 方法從新創建的 Bitmap 對像初始化 Graphics 類對象。
- 然後,創建 GraphicsPath 類的一個實例。
- 同時,使用 AddPolygon() 方法添加一個多邊形。
- 接下來,創建 Region 類的實例。
- 然後,添加另一個 GraphicsPath 對象並使用 AddRectangle() 方法添加一個矩形。
- 接下來,調用 Exclude() 方法從區域中排除內部路徑。
- 然後,定義一個具有指定顏色的 SolidBrush 類對象。
- 之後,使用 SolidBrush 和 GraphicsPath 對象調用 FillRegion() 方法。
- 最後,使用 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");
獲得免費的臨時許可證
您可以獲得免費的臨時許可證 試用 Aspose.Drawing for .NET,沒有評估限制。
結論
在本文中,我們學習瞭如何:
- 創建一個新的位圖;
- 在位圖上繪製矩形、橢圓等;
- 繪製線條和路徑;
- 在 C# 中將位圖圖像保存為 PNG。
除了使用 C# 進行圖形編程外,您還可以使用 文檔 了解有關 Aspose.Drawing for .NET 的更多信息,並探索 API 支持的各種功能。如有任何疑問,請隨時通過我們的 免費支持論壇 與我們聯繫。