Bitmap in C# erstellen, laden, füllen und zeichnen

Eine Bitmap wird zum Erstellen und Speichern von Computergrafiken verwendet. Bitmap bilder werden häufig auf Webseiten und digitalen Geräten wie Kameras, Smartphones usw. verwendet. Die gängigsten Bitmap-Grafikdateitypen sind BMP, GIF, PNG und JPEG. In diesem Artikel lernen wir, wie man eine Bitmap in C# erstellt.

Folgende Themen sollen in diesem Artikel behandelt werden:

  1. C# API zum Erstellen, Laden, Füllen und Zeichnen von Bitmaps
  2. Eine neue Bitmap von Grund auf neu erstellen
  3. Bitmap aus Byte-Array erstellen
  4. Bitmap als Bilddatei speichern
  5. Formen auf Bitmap zeichnen
  6. Text auf Bitmap bild zeichnen
  7. Eine Bitmap mit Volltonfarbe füllen
  8. Bild in Bitmap laden
  9. Größe eines vorhandenen Bildes mit Bitmap ändern

C# API zum Erstellen, Laden, Füllen und Zeichnen von Bitmaps – kostenloser Download

Um eine Bitmap 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

Erstellen Sie eine neue Bitmap in C#

Wir können eine neue Bitmap von Grund auf neu erstellen, indem wir die folgenden Schritte ausführen:

  1. Erstellen Sie zunächst eine neue Bitmap mit der Bitmap Klasse mit der angegebenen Größe und dem angegebenen Format.
  2. Als Nächstes erstellen Sie mithilfe der Methode FromImage() ein neues Graphics Objekt aus dem Bitmap Objekt.
  3. Initialisieren Sie dann ein Pen Klassenobjekt mit der angegebenen Farbe und Größe.
  4. Rufen Sie danach die Methode DrawEllipse() auf, um eine Ellipse mit einer bestimmten Größe zu zeichnen.
  5. Speichern Sie schließlich das Ausgabebild mit der Methode Save().

Das folgende Codebeispiel zeigt, wie Sie eine neue Bitmap in C# erstellen.

// Dieses Codebeispiel zeigt, wie eine neue Bitmap programmgesteuert in C# erstellt wird.
// Bitmap Objekt initialisieren
Bitmap bitmap = new Bitmap(1000, 800, System.Drawing.Imaging.PixelFormat.Format32bppPArgb);

// Erstellen Sie eine neue Grafik
Graphics graphics = Graphics.FromImage(bitmap);

// Initialisieren Sie einen Stift
Pen pen = new Pen(Color.Red, 5);

// Zeichne ein Rechteck
graphics.DrawEllipse(pen, new Rectangle(0, 0, 700, 700));

// Speicher die Datei
bitmap.Save(@"C:\Files\Drawings\output.png");
Erstellen-einer-neuen-Bitmap-in-CSharp

Erstellen Sie eine neue Bitmap in C#

Erstellen Sie eine Bitmap aus einem Byte-Array in C#

Wir können eine Bitmap aus Speicherstrombytes erstellen, indem wir die folgenden Schritte ausführen:

  1. Bilddatei in ein Byte-Array einlesen.
  2. Erstellen Sie mithilfe des Byte-Array Objekts eine neue Instanz des MemoryStream.
  3. Erstellen Sie eine neue Bitmap mithilfe der Bitmap Klasse mit dem MemoryStream Objekt.
  4. Speichern Sie das Bild schließlich mit der Methode Save().

Das folgende Codebeispiel zeigt, wie Sie mithilfe von MemoryStream in C# eine Bitmap aus einem Bytearray erstellen.

// Dieses Codebeispiel zeigt, wie Sie in C# eine neue Bitmap aus Speicherstrombytes erstellen.
// Laden Sie das Bild und lesen Sie alle Bytes
var file = File.ReadAllBytes(@"C:\Files\Drawings\sample.jpg");

// Speicherstream erstellen
MemoryStream stream = new MemoryStream(file);

// Erstellen Sie eine neue Bitmap
Bitmap bitmap = new Bitmap(stream);

// Speicher die Datei
bitmap.Save(@"C:\Files\Drawings\output.jpg");

C# Bitmap in einer Datei speichern

Wir können Bitmap bilder in einer Datei in verschiedenen unterstützten Dateiformaten speichern, indem wir die zuvor erwähnten Schritte ausführen. Wir müssen jedoch nur die gewünschte Erweiterung des Speicherdateiformats angeben, während wir die Bilddatei im letzten Schritt mit der Methode Save(string filename, ImageFormat format) speichern.

  • Speichern Sie eine Bitmap als BMP-Datei
bitmap.Save(@"C:\Files\output.bmp", ImageFormat.Bmp);
  • Speichern Sie eine Bitmap als PNG-Datei
bitmap.Save(@"C:\Files\output.png", ImageFormat.Png);
  • Speichern Sie eine Bitmap als JPG-Datei
bitmap.Save(@"C:\Files\output.jpg", ImageFormat.Jpeg);
  • Speichern Sie eine Bitmap als GIF-Datei
bitmap.Save(@"C:\Files\output.gif", ImageFormat.Gif);

C# Auf Bitmap zeichnen

Wir können verschiedene Formen und Bilder auf einer Bitmap zeichnen, indem wir die zuvor erwähnten Schritte befolgen. Wir müssen jedoch nur die formspezifischen Methoden verwenden, um die gewünschten Formen zu zeichnen.

Wir können die folgenden Formen mit den bereitgestellten spezifischen Methoden zum Zeichnen auf Bitmaps zeichnen:

  • Bogen: Wir können einen Bogen mit der Methode DrawArc() zeichnen.
  • Bezier: Wir können einen Bezier mit der Methode DrawBezier() zeichnen.
  • Eine Reihe von Bézier-Splines: Wir können eine Reihe von Bézier-Splines mit der Methode DrawBeziers() zeichnen.
  • Kurve: Wir können eine gekrümmte Form mit der Methode DrawCurve() zeichnen.
  • ClosedCurve: Wir können eine geschlossene Kurve mit der Methode DrawClosedCurve() zeichnen.
  • Ellipse: Wir können eine Ellipse mit der Methode DrawEllipse() zeichnen.
  • Linie: Wir können eine Linie mit der Methode DrawLine() zeichnen.
  • Eine Reihe von Linien: Wir können eine Reihe von Linien mit der Methode DrawLines() zeichnen.
  • Pfad: Wir können einen Pfad mit der Methode DrawPath() zeichnen.
  • Kuchen: Wir können einen Kuchen mit der Methode DrawPie() zeichnen.
  • Polygon: Wir können ein Polygon mit der Methode DrawPolygon() zeichnen.
  • Rechteck: Wir können ein Rechteck mit der Methode DrawRectangle() zeichnen.
  • Eine Reihe von Rechtecken: Wir können eine Reihe von Rechtecken mit der Methode DrawRectangles() zeichnen.

Wir können die Bilder mit den folgenden Methoden auf die Bitmap zeichnen:

  • Symbol: Wir können das durch das angegebene Symbol dargestellte Bild innerhalb des durch eine Rectangle-Struktur angegebenen Bereichs zeichnen, indem wir die Methode DrawIcon() verwenden.
  • Bild: Wir können jedes angegebene Bild mit der Methode DrawImage() zeichnen.

C# Text auf Bitmap zeichnen

Wir können jede Zeichenfolge auf einer Bitmap zeichnen, indem wir die folgenden Schritte ausführen:

  1. Erstellen Sie zunächst eine neue Bitmap mit der Bitmap Klasse mit der angegebenen Größe.
  2. Als Nächstes erstellen Sie mithilfe der Methode FromImage() ein neues Graphics Objekt aus dem Bitmap Objekt.
  3. Definieren Sie dann ein Schriftartklassenobjekt mit der gewünschten Schriftartfamilie, dem Stil und der Größe.
  4. Initialisieren Sie in der Zwischenzeit ein SolidBrush Objekt mit der angegebenen Farbe.
  5. Rufen Sie danach die DrawString()-Methode mit den anzuzeigenden Text-, Font und Brush Objekten als Argumente auf.
  6. Speichern Sie schließlich das Ausgabebild mit der Methode Save().

Das folgende Codebeispiel zeigt, wie Text auf einer Bitmap in C# gezeichnet wird.

// Dieses Codebeispiel zeigt, wie in C# programmgesteuert ein Text auf einer neuen Bitmap gezeichnet wird.
// Bitmap Objekt initialisieren
Bitmap bitmap = new Bitmap(500,200);

// Erstellen Sie eine neue Grafik
Graphics graphics = Graphics.FromImage(bitmap);

// Initialisieren Sie eine Schriftart
var font = new Font(FontFamily.GenericSerif, 40f, FontStyle.Bold);

// Initialisieren Sie einen Pinsel
var brush = new SolidBrush(Color.Red);

// Zeichne ein Rechteck
graphics.DrawString("Welcome to Bitmap!", font, brush, 10, 20);

// Speicher die Datei
bitmap.Save(@"C:\Files\Drawings\output.png", ImageFormat.Png);
C# Text auf Bitmap zeichnen

C# Text auf Bitmap zeichnen

Füllen Sie eine Bitmap mit Volltonfarbe in C#

Wir können eine Bitmap mithilfe eines gefüllten Rechtecks mit einer Volltonfarbe füllen und sie in einer neuen Bitmap speichern, indem Sie die folgenden Schritte ausführen:

  1. Erstellen Sie zunächst eine neue Bitmap mit der Bitmap Klasse mit der angegebenen Größe.
  2. Als Nächstes erstellen Sie mithilfe der Methode FromImage() ein neues Graphics Objekt aus dem Bitmap Objekt.
  3. Initialisieren Sie dann ein Rectangle Klassenobjekt mit der angegebenen Position und Größe.
  4. Rufen Sie danach die Methode FillRectangle() mit der Pinselfarbe und dem Rectangle auf.
  5. Speichern Sie schließlich das Ausgabebild mit der Methode Save().

Das folgende Codebeispiel zeigt, wie Sie eine Bitmap mithilfe eines Rechtecks in C# mit einer Volltonfarbe füllen.

// Dieses Codebeispiel zeigt, wie Sie in C# eine neue Bitmap mit gefülltem Rechteck erstellen.
// Bitmap mit angegebener Größe initialisieren
Bitmap bitmap = new Bitmap(500, 500);

// Erstellen Sie eine neue Grafik
Graphics graph = Graphics.FromImage(bitmap);

// Definiere ein Rechteck
Rectangle ImageSize = new Rectangle(0, 0, 500, 500);

// Zeichnen Sie ein gefülltes Rechteck
graph.FillRectangle(Brushes.Gray, ImageSize);

// Speicher die Datei
bitmap.Save(@"C:\Files\Drawings\output.png");
C# Auf Bitmap zeichnen und mit Rechteck füllen

C# Rechteck auf Bitmap zeichnen und mit einer Farbe füllen

Laden Sie ein Bild in Bitmap mit C#

Wir können auch ein vorhandenes Bild in eine Bitmap laden und als neue Bitmap speichern, indem wir die folgenden Schritte ausführen:

  1. Laden Sie zunächst ein Bild mit der Bitmap Klasse.
  2. Erstellen Sie als Nächstes eine neue Bitmap mithilfe der Bitmap Klasse mit der angegebenen Größe.
  3. Erstellen Sie dann mithilfe der FromImage()-Methode ein neues Graphics Objekt aus dem neu erstellten Bitmap Objekt.
  4. Rufen Sie danach die Methode DrawImage() mit den Bild und Ortskoordinaten als Argumente auf.
  5. Speichern Sie schließlich das Ausgabebild mit der Methode Save().

Das folgende Codebeispiel zeigt, wie ein Bild mit C# in eine Bitmap geladen wird.

// Dieses Codebeispiel zeigt, wie ein Bild in eine Bitmap geladen und als neue Bitmap gespeichert wird.
// Laden Sie das Bild:
Bitmap image = new Bitmap(@"C:\Files\Drawings\sample.jpg");

// Bitmap mit angegebener Größe initialisieren
Bitmap bitmap = new Bitmap(1000, 1000);

// Erstellen Sie eine neue Grafik
Graphics graphics = Graphics.FromImage(bitmap);

// Bild an angegebener Stelle zeichnen
graphics.DrawImage(image, 10, 10);

// Speicher die Datei
bitmap.Save(@"C:\Files\Drawings\output.png");
Laden-ein bild-in-Bitmap-mit-CSharp

Laden Sie ein Bild in Bitmap mit C#

So ändern Sie die Bildgröße mit Bitmap in C#

Wir können ein vorhandenes Bild in eine Bitmap laden, seine Größe ändern und es als neue Bitmap speichern, indem wir die folgenden Schritte ausführen:

  1. Laden Sie ein vorhandenes Bild mithilfe der Bitmap Klasse.
  2. Erstellen Sie eine neue Bitmap mithilfe der Bitmap Klasse mit dem geladenen Bild und der angegebenen Größe.
  3. Speichern Sie schließlich das Ausgabebild mit der Methode Save().

Das folgende Codebeispiel zeigt, wie Sie die Größe eines vorhandenen Bilds ändern und es als neue Bitmap in C# speichern.

// Dieses Codebeispiel zeigt, wie Sie die Größe eines vorhandenen Bilds ändern und eine neue Bitmap in C# erstellen.
// Laden Sie das Bild:
Bitmap image = new Bitmap(@"C:\Files\Drawings\sample.jpg");

// Erstellen Sie eine neue Bitmap, die halb so groß ist wie das geladene Bild:
Bitmap bitmap = new Bitmap(image, (int)(image.Width * 0.5), (int)(image.Height * 0.5));

// Speicher die Datei
bitmap.Save(@"C:\Files\Drawings\output.jpg");
So ändern Sie die Bildgröße mit Bitmap in C#

Größe eines vorhandenen Bildes mit C# ändern

Holen Sie sich eine kostenlose temporäre Lizenz

Sie können eine kostenlose temporäre Lizenz erhalten, um Aspose.Drawing for .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;
  • ein vorhandenes Bild laden;
  • Ändern Sie die Größe eines vorhandenen Bildes und erstellen Sie eine neue Bitmap mit einer neuen Größe;
  • Speichern Sie ein Bitmap bild aus MemoryStream oder Byte-Array in eine Datei;
  • Legen Sie eine Breite und Höhe einer Bitmap in C# fest.

Neben dem Erstellen einer neuen Bitmap in C# können Sie mithilfe von Dokumentation mehr über Aspose.Drawing for .NET erfahren und verschiedene von der API unterstützte Funktionen erkunden. Im Falle von Unklarheiten können Sie sich gerne in unserem kostenlosen Support-Forum an uns wenden.

Siehe auch