Grafikprogrammierung in C#

Die Grafikprogrammierung in C# scheint einfacher oder schwieriger zu sein, als Sie vielleicht denken. In diesem Artikel erfahren Sie, wie Sie programmgesteuert beeindruckende Vektorgrafiken erstellen. Egal, ob Sie Grafiken als Teil Ihres aktuellen Projekts oder als Grundlage für Ihr eigenes Spiel oder Ihre eigene App erstellen! Sie werden lernen, mit Leichtigkeit schöne Bilder zu erstellen. Lass uns anfangen!

Folgende Themen sollen in diesem Artikel behandelt werden:

  1. C#-Vektorgrafik-Programmier-API
  2. Die Struktur einer Vektorgrafik
  3. Grafikprogrammierung mit C#
  4. Kurven in der Grafikprogrammierung
  5. Polygone und Rechtecke
  6. Wie man Linien zeichnet
  7. Pfade zeichnen
  8. Zeichne einen Füllbereich

Programmier-API für C#-Vektorgrafiken – kostenloser Download

Um beeindruckende Vektorgrafiken in C# zu erstellen, verwenden wir die API Aspose.Drawing for .NET. Es ist eine plattformübergreifende 2D-Grafikbibliothek zum programmgesteuerten Zeichnen von Text, Geometrien und Bildern. Es ermöglicht das Laden, Speichern und Bearbeiten der unterstützten Dateiformate.

Bitte laden Sie die DLL der API herunter oder installieren Sie sie mit NuGet.

PM> Install-Package Aspose.Drawing

Die Struktur einer Vektorgrafik

Vektorgrafiken bestehen aus geometrischen Formen: Linien, Kurven und Pfaden. Diese Objekte mit verschiedenen Eigenschaften wie Länge und Farbe können von einem C#-Programm bearbeitet werden.

Grafikprogrammierung mit C#

Wir können verschiedene Arten von Formen malen oder zeichnen, darunter Kurven, Linien, Rechtecke, gefüllte Bereiche, Ellipsen und Polygone. Die API bietet verschiedene Methoden zum Zeichnen dieser Formen. Wir können eine Vielzahl verschiedener Vektorgrafiken programmgesteuert erstellen, indem wir die folgenden Schritte ausführen:

  1. Erstellen Sie ein Objekt der Bitmap-Klasse.
  2. Initialisieren Sie ein Objekt der Graphics-Klasse aus der Bitmap.
  3. Definieren Sie ein Pen- oder SolidBrush-Klassenobjekt mit den gewünschten Parametern.
  4. Verwenden Sie die formspezifische(n) Methode(n) der Graphics-Klasse, um die gewünschte(n) Form(en) zu zeichnen.
  5. Speichern Sie am Ende das Bild.

Sehen wir uns nun an, wie diese Schritte in C# ausgeführt werden.

Kurven in der Grafikprogrammierung mit C#

Wir können Bögen, Kreise, Ellipsen oder geschlossene Kurven mit den folgenden Methoden zeichnen:

  • DrawArc() Methode, um einen Bogen zu zeichnen.
  • DrawEllipse() Methode, um eine Ellipse zu zeichnen.
  • DrawClosedCurve() Methode, um eine geschlossene Kurve zu zeichnen.
  • DrawCurve() Methode zum Zeichnen einer Kurve.

Bitte befolgen Sie die unten angegebenen Schritte, um eine gekrümmte Form zu zeichnen:

  1. Erstellen Sie zunächst eine Instanz der Bitmap-Klasse.
  2. Erstellen Sie als Nächstes das Graphics-Klassenobjekt mithilfe der FromImage()-Methode aus dem neu erstellten Bitmap-Objekt.
  3. Definieren Sie dann ein Pen-Klassenobjekt mit der angegebenen Farbe und Größe.
  4. Rufen Sie danach die Methode DrawClosedCurve() auf, um eine geschlossene Kurve zu zeichnen.
  5. Wiederholen Sie optional die obigen Schritte, um einen Bogen und eine Ellipse hinzuzufügen.
  6. Speichern Sie schließlich das Ausgabebild mit der Methode Save().

Das folgende Codebeispiel zeigt, wie gekrümmte Formen in C# gezeichnet werden.

// Dieses Codebeispiel zeigt, wie eine geschlossene Kurve, ein Bogen und ein Kreis gezeichnet werden.
// Erstellen Sie eine Bitmap
Bitmap bitmap = new Bitmap(1000, 800, System.Drawing.Imaging.PixelFormat.Format32bppPArgb);

// Anfängliche Grafiken von Bitmap
Graphics graphics = Graphics.FromImage(bitmap);

// Definieren Sie einen zu zeichnenden Stift
Pen penBlue = new Pen(Color.Blue, 4);

// Zeichne eine Kurve
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) });

// Zeichne einen Bogen
Pen penRed = new Pen(Color.Red, 2);
graphics.DrawArc(penRed, 0, 0, 700, 700, 0, 180);

// Zeichne eine Ellipse
Pen penGreen = new Pen(Color.Green, 2);
graphics.DrawEllipse(penGreen, 10, 10, 500, 500);

// Speichern Sie die Bitmap als PNG
bitmap.Save("C:\\Files\\Drawing\\Curves.png");
Kurven in der Grafikprogrammierung mit C#

Kurven in der Grafikprogrammierung mit C#

Polygone und Rechtecke in der Grafikprogrammierung mit C#

Wir können Polygone und Rechtecke zeichnen, indem wir die zuvor erwähnten Schritte befolgen. In Schritt 4 müssen wir jedoch die folgenden Methoden verwenden:

  • DrawPolygon() Methode zum Zeichnen eines Polygons.
  • DrawRectangle() Methode, um ein Rechteck zu zeichnen.

Das folgende Codebeispiel zeigt, wie Polygone und Rechtecke in C# gezeichnet werden.

// Dieses Codebeispiel zeigt, wie ein Polygon und ein Rechteck gezeichnet werden.
// Erstellen Sie eine Bitmap
Bitmap bitmap = new Bitmap(1000, 800, System.Drawing.Imaging.PixelFormat.Format32bppPArgb);

// Anfängliche Grafiken von Bitmap
Graphics graphics = Graphics.FromImage(bitmap);

// Definieren Sie einen zu zeichnenden Stift
Pen penBlue = new Pen(Color.Blue, 4);

// Zeichne ein Vieleck
graphics.DrawPolygon(pen, new Point[] { new Point(100, 100), new Point(500, 700), new Point(900, 100) });

// Zeichne ein Rechteck
Pen penRed = new Pen(Color.Red, 2);
graphics.DrawRectangle(penRed, 10, 10, 900, 700);

// Speichern Sie die Bitmap als PNG
bitmap.Save("C:\\Files\\Drawing\\Shapes.png");
Laden-ein-Bild-in-Bitmap-mit-CSharp

Laden Sie ein Bild in Bitmap mit C#

Zeilen in der Grafikprogrammierung mit C#

In ähnlicher Weise können wir Linien zeichnen, indem wir die zuvor erwähnten Schritte befolgen. Allerdings müssen wir in Schritt 4 die Methode DrawLine() verwenden, um eine Linie zu zeichnen.

Das folgende Codebeispiel zeigt, wie Linien in C# gezeichnet werden.

// Dieses Codebeispiel zeigt, wie eine Linie gezeichnet wird.
// Erstellen Sie eine Bitmap
Bitmap bitmap = new Bitmap(1000, 800, System.Drawing.Imaging.PixelFormat.Format32bppPArgb);

// Anfängliche Grafiken von Bitmap
Graphics graphics = Graphics.FromImage(bitmap);

// Definieren Sie einen zu zeichnenden Stift
Pen penBlue = new Pen(Color.Blue, 4);

// Linien zeichnen
graphics.DrawLine(pen, 10, 700, 500, 10);
graphics.DrawLine(pen, 500, 10, 990, 700);

// Speichern Sie die Bitmap als PNG
bitmap.Save("C:\\Files\\Drawing\\Lines.png");
Zeilen in der Grafikprogrammierung mit C#

Zeilen in der Grafikprogrammierung mit C#

Pfade in der Grafikprogrammierung mit C#

In Vektorgrafiken stellt ein Pfad eine Reihe glatter gerader Linien dar, die durch einen Start- und Endpunkt sowie andere Punkte definiert sind. Wir können einen Pfad zeichnen, indem wir die folgenden Schritte ausführen:

  1. Erstellen Sie zunächst eine Instanz der Bitmap-Klasse.
  2. Initialisieren Sie als Nächstes das Graphics-Klassenobjekt aus dem neu erstellten Bitmap-Objekt mit der FromImage()-Methode.
  3. Definieren Sie dann ein Pen-Klassenobjekt mit der angegebenen Farbe und Größe.
  4. Erstellen Sie als Nächstes eine Instanz der GraphicsPath-Klasse.
  5. Fügen Sie dann Zeilen mit der Methode AddLine() hinzu.
  6. Rufen Sie danach die Methode DrawPath() mit Pen- und GraphicsPath-Objekten auf.
  7. Speichern Sie schließlich das Ausgabebild mit der Methode Save().

Das folgende Codebeispiel zeigt, wie ein Pfad in C# gezeichnet wird.

// Dieses Codebeispiel zeigt, wie ein Path gezeichnet wird.
// Erstellen Sie eine Bitmap
Bitmap bitmap = new Bitmap(1000, 800, System.Drawing.Imaging.PixelFormat.Format32bppPArgb);

// Anfängliche Grafiken von Bitmap
Graphics graphics = Graphics.FromImage(bitmap);

// Definieren Sie einen zu zeichnenden Stift
Pen penBlue = new Pen(Color.Blue, 4);

// Grafikpfad initialisieren
GraphicsPath path = new GraphicsPath();

// Zeile 1 hinzufügen
path.AddLine(100, 100, 1000, 400);

// Zeile 2 hinzufügen
path.AddLine(1000, 600, 300, 600);

// Rechteck hinzufügen
path.AddRectangle(new Rectangle(500, 350, 200, 400));

// Ellipse hinzufügen
path.AddEllipse(10, 250, 450, 300);

// Zeichne einen Pfad
graphics.DrawPath(pen, path);

// Speichern Sie die Bitmap als PNG
bitmap.Save("C:\\Files\\Drawing\\Shapes.png");
Pfade in der Grafikprogrammierung mit C#

Pfade in der Grafikprogrammierung mit C#

Bereich in der Grafikprogrammierung mit C# füllen

Wir können einen Füllbereich zeichnen, indem wir die folgenden Schritte ausführen:

  1. Erstellen Sie zunächst eine Instanz der Bitmap-Klasse.
  2. Initialisieren Sie als Nächstes das Graphics-Klassenobjekt aus dem neu erstellten Bitmap-Objekt mit der FromImage()-Methode.
  3. Erstellen Sie dann eine Instanz der GraphicsPath-Klasse.
  4. Fügen Sie in der Zwischenzeit ein Polygon mit der Methode AddPolygon() hinzu.
  5. Erstellen Sie als Nächstes eine Instanz der Region-Klasse.
  6. Fügen Sie dann ein weiteres GraphicsPath-Objekt hinzu, und fügen Sie mithilfe der Methode AddRectangle() ein Rechteck hinzu.
  7. Rufen Sie als Nächstes die Methode Exclude() auf, um den inneren Pfad aus der Region auszuschließen.
  8. Definieren Sie dann ein SolidBrush-Klassenobjekt mit der angegebenen Farbe.
  9. Rufen Sie danach die FillRegion()-Methode mit SolidBrush- und GraphicsPath-Objekten auf.
  10. Speichern Sie abschließend das Ausgabebild mit der Methode Save().

Das folgende Codebeispiel zeigt, wie Sie einen gefüllten Bereich in C# zeichnen.

// Dieses Codebeispiel zeigt, wie eine Region gezeichnet wird.
// Erstellen Sie eine Bitmap
Bitmap bitmap = new Bitmap(1000, 800, System.Drawing.Imaging.PixelFormat.Format32bppPArgb);

// Anfängliche Grafiken von Bitmap
Graphics graphics = Graphics.FromImage(bitmap);

// Fügen Sie ein Polygon hinzu
path.AddPolygon(new Point[] { new Point(100, 400), new Point(500, 100), new Point(900, 400), new Point(500, 700) });

// Initialisieren Sie eine Region
Region region = new Region(path);

// Innerer Grafikpfad
GraphicsPath innerPath = new GraphicsPath();

// Fügen Sie ein Rechteck hinzu
innerPath.AddRectangle(new Rectangle(300, 300, 400, 200));

// Schließen Sie den inneren Pfad aus
region.Exclude(innerPath);

// Definieren Sie einen festen Pinsel
Brush brush = new SolidBrush(Color.Blue);

// Bereich füllen
graphics.FillRegion(brush, region);

// Speichern Sie die Bitmap als PNG
bitmap.Save("C:\\Files\\Drawing\\Lines.png");
Bereich in der Grafikprogrammierung mit C# füllen

Bereich in der Grafikprogrammierung mit C# füllen

Holen Sie sich eine kostenlose temporäre Lizenz

Sie können eine kostenlose temporäre Lizenz erhalten, um Aspose.Drawing für .NET ohne Evaluierungseinschränkungen zu testen.

Fazit

In diesem Artikel haben wir gelernt, wie man:

  • Erstellen Sie eine neue Bitmap;
  • Rechteck, Ellipse usw. auf einer Bitmap zeichnen;
  • Linien und Pfade zeichnen;
  • Speichern Sie ein Bitmap-Bild als PNG in C#.

Neben der Grafikprogrammierung in C# können Sie mithilfe von Dokumentation mehr über Aspose.Drawing für .NET erfahren und verschiedene Funktionen erkunden, die von der API unterstützt werden. Bei Unklarheiten können Sie sich gerne in unserem kostenlosen Support-Forum an uns wenden.

Siehe auch