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);

// Bitmap からの Initialie Graphics
Graphics graphics = Graphics.FromImage(bitmap);

// 描画するペンを定義する
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# で多角形と四角形を描画する方法を示しています。

// このコード例は、Polygon と Rectangle を描画する方法を示しています。
// ビットマップを作成する
Bitmap bitmap = new Bitmap(1000, 800, System.Drawing.Imaging.PixelFormat.Format32bppPArgb);

// Bitmap からの Initialie Graphics
Graphics graphics = Graphics.FromImage(bitmap);

// 描画するペンを定義する
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# で線を描画する方法を示しています。

// このコード例は、Line を描画する方法を示しています。
// ビットマップを作成する
Bitmap bitmap = new Bitmap(1000, 800, System.Drawing.Imaging.PixelFormat.Format32bppPArgb);

// Bitmap からの Initialie Graphics
Graphics graphics = Graphics.FromImage(bitmap);

// 描画するペンを定義する
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);

// Bitmap からの Initialie Graphics
Graphics graphics = Graphics.FromImage(bitmap);

// 描画するペンを定義する
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# で塗りつぶされた領域を描画する方法を示しています。

// このコード例は、Region を描画する方法を示しています。
// ビットマップを作成する
Bitmap bitmap = new Bitmap(1000, 800, System.Drawing.Imaging.PixelFormat.Format32bppPArgb);

// Bitmap からの Initialie Graphics
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 でサポートされているさまざまな機能を調べることができます。ご不明な点がございましたら、無料サポート フォーラム までお気軽にお問い合わせください。

関連項目