Wie man Barcodes aus System Drawing-Objekten liest

Lesen von BarCodes aus System.Drawing in C

This article was translated from English: Does it need improvement?
Translated
View the article in English

System.Drawing-Objekte werden in .NET von Entwicklern häufig für Aufgaben im Zusammenhang mit der Bildverarbeitung verwendet. Microsoft hat jedoch den Support für System.Drawing auf anderen Betriebssystemen wie MacOS und Linux eingestellt und unterstützt nun ausschließlich Windows. Diese signifikante Änderung hat bei Entwicklern, die IronBarcode auf anderen Betriebssystemen als Windows verwenden, zu mehreren Problemen geführt. Dies liegt daran, dass das Arbeiten mit Barcodes in der Regel die Verwendung von Objekten wie Grafiken, Bildern und Schriften erfordert.

Um dieses Problem zu lösen, haben wir eine alternative Lösung eingeführt: IronDrawing. Diese kostenlose und Open-Source-Bibliothek, initiiert von Iron Software, soll den Prozess auf anderen Betriebssystemen als Windows erleichtern. Dies bietet unseren Benutzern eine benutzerfreundliche Erfahrung. Sobald Sie IronBarcode von NuGet installieren, wird IronDrawing automatisch in Ihr Projekt aufgenommen.

Quickstart: Lesen Sie einen Barcode mit AnyBitmap in einer einfachen Zeile

Dieses Snippet zeigt, wie mühelos IronBarcode einen Barcode lesen kann, indem es ein System.Drawing.Bitmap erstellt und IronDrawing es implizit in AnyBitmap umwandelt. Mit nur einer Zeile erhalten Entwickler auf jedem Betriebssystem schnell und einfach Ergebnisse.

Nuget IconLegen Sie jetzt mit NuGet los, um PDFs zu erstellen:

  1. Installieren Sie IronBarcode mit dem NuGet-Paketmanager.

    PM > Install-Package BarCode

  2. Kopieren Sie diesen Codeausschnitt und führen Sie ihn aus.

    var results = IronBarCode.BarcodeReader.Read((AnyBitmap)(new System.Drawing.Bitmap("yourImage.png")));
  3. Bereitstellen zum Testen in Ihrer Live-Umgebung

    Beginnen Sie noch heute mit der Nutzung von IronBarcode in Ihrem Projekt – mit einer kostenlosen Testversion.
    arrow pointer

Wandeln Sie System.Drawing in AnyBitmap um

Das Lesen von Barcodes aus System.Drawing besteht einfach darin, das Objekt in AnyBitmap umzuwandeln. IronDrawing wurde mit Benutzerfreundlichkeit im Sinn entwickelt. Folglich unterstützt IronDrawing implizite Umwandlungen für Bildobjekte aus System.Drawing in Iron Software.Drawing-Bildobjekte namens AnyBitmap.

Zusätzlich zu System.Drawing-Objekten unterstützen wir auch Umwandlungen von anderen Objekttypen, einschließlich:

  • System.Drawing.Bitmap
  • System.Drawing.Image
  • SkiaSharp.SKBitmap
  • SkiaSharp.SKImage
  • SixLabors.ImageSharp

Benutzer können sich das folgende Codebeispiel für die Umwandlung der oben genannten Objekte ansehen. Nachfolgend finden Sie ein Code-Snippet, das zeigt, wie Bilder von Barcodes aus System.Drawing-Objekten in Iron Software.Drawing.AnyBitmap umgewandelt werden. Hier ist ein einfaches Beispiel:

:path=/static-assets/barcode/content-code-examples/how-to/read-barcodes-from-system-drawing-cast-to-anybitmap.cs
using IronSoftware.Drawing;
using System.Collections.Generic;

List<AnyBitmap> barcodes = new List<AnyBitmap>();

// Instantiate System.Drawing.Bitmap
System.Drawing.Bitmap bitmapFromBitmap = new System.Drawing.Bitmap("test1.jpg");

// Cast from System.Drawing.Bitmap to AnyBitmap
AnyBitmap barcode1 = bitmapFromBitmap;

barcodes.Add(barcode1);

// Instantiate System.Drawing.Bitmap
System.Drawing.Image bitmapFromFile = System.Drawing.Image.FromFile("test2.png");

// Cast from System.Drawing.Image to AnyBitmap
AnyBitmap barcode2 = bitmapFromFile;

barcodes.Add(barcode2);
Imports IronSoftware.Drawing
Imports System.Collections.Generic

Private barcodes As New List(Of AnyBitmap)()

' Instantiate System.Drawing.Bitmap
Private bitmapFromBitmap As New System.Drawing.Bitmap("test1.jpg")

' Cast from System.Drawing.Bitmap to AnyBitmap
Private barcode1 As AnyBitmap = bitmapFromBitmap

barcodes.Add(barcode1)

' Instantiate System.Drawing.Bitmap
Dim bitmapFromFile As System.Drawing.Image = System.Drawing.Image.FromFile("test2.png")

' Cast from System.Drawing.Image to AnyBitmap
Dim barcode2 As AnyBitmap = bitmapFromFile

barcodes.Add(barcode2)
$vbLabelText   $csharpLabel

Aus dem obigen Code-Snippet haben wir zwei Barcode-Bilder als System.Drawing.Bitmap und System.Drawing.Image geladen. Wir haben diese dann implizit in AnyBitmap umgewandelt, indem wir sie einfach AnyBitmap-Objekten zugewiesen haben. Anschließend haben wir diese Objekte einer AnyBitmap-Liste hinzugefügt.

Barcodes aus AnyBitmap lesen

IronBarcode kann Iron Software.Drawing.AnyBitmap-Objekte problemlos in all seinen Methoden akzeptieren, ohne dass eine zusätzliche Konfiguration erforderlich ist. Dies bietet Entwicklern, die IronBarcode mit System.Drawing Objekten verwenden, die auf Betriebssystemen außerhalb von Windows nicht unterstützt werden, Benutzerfreundlichkeit. Das folgende Code-Snippet zeigt, wie dies gemacht wird.

:path=/static-assets/barcode/content-code-examples/how-to/read-barcodes-from-system-drawing-read-anybitmap.cs
using IronBarCode;
using IronSoftware.Drawing;
using System;
using System.Collections.Generic;

List<AnyBitmap> barcodes = new List<AnyBitmap>();

System.Drawing.Bitmap bitmapFromBitmap = new System.Drawing.Bitmap("test1.jpg");
AnyBitmap barcode1 = bitmapFromBitmap;
barcodes.Add(barcode1);

System.Drawing.Image bitmapFromFile = System.Drawing.Image.FromFile("test2.png");
AnyBitmap barcode2 = bitmapFromFile;
barcodes.Add(barcode2);

foreach (var barcode in barcodes)
{
    // Read the barcode
    var results = BarcodeReader.Read(barcode);
    foreach (var result in results)
    {
        // Output the detected barcode value
        Console.WriteLine(result.Value);
    }
}
Imports IronBarCode
Imports IronSoftware.Drawing
Imports System
Imports System.Collections.Generic

Private barcodes As New List(Of AnyBitmap)()

Private bitmapFromBitmap As New System.Drawing.Bitmap("test1.jpg")
Private barcode1 As AnyBitmap = bitmapFromBitmap
barcodes.Add(barcode1)

Dim bitmapFromFile As System.Drawing.Image = System.Drawing.Image.FromFile("test2.png")
Dim barcode2 As AnyBitmap = bitmapFromFile
barcodes.Add(barcode2)

For Each barcode In barcodes
	' Read the barcode
	Dim results = BarcodeReader.Read(barcode)
	For Each result In results
		' Output the detected barcode value
		Console.WriteLine(result.Value)
	Next result
Next barcode
$vbLabelText   $csharpLabel

Das obige Code-Snippet ist eine Erweiterung des vorherigen. Sobald wir die AnyBitmap-Liste gefüllt haben, haben wir durch die Liste iteriert und die Read-Methode auf jedem AnyBitmap-Objekt als Parameter aufgerufen, was dann IronBarcode.BarcodeResults zurückgegeben hat. Wir haben dann durch das zurückgegebene Objekt iteriert, um den Barcode-Wert auf der Konsole auszugeben.

Der Funktionsbereich in Iron Software.Drawing beschränkt sich nicht nur auf die Umwandlung von Bildern. Es wird auch stark in anderen Aspekten der Bildverarbeitung eingesetzt, z.B. Farben und Schriften, die nützlich sind, um Barcodes und QR-Codes zu gestalten. Benutzer können erkunden, wie wir IronDrawing verwenden, um QR-Codes anzupassen und Logos hinzuzufügen.

Häufig gestellte Fragen

Wie kann ich Barcodes aus System.Drawing-Objekten in .NET C# lesen?

Sie können Barcodes aus System.Drawing-Objekten lesen, indem Sie IronBarcode in Verbindung mit IronDrawing verwenden. Zuerst wandeln Sie Ihre System.Drawing-Objekte mit IronDrawing in AnyBitmap um, und verwenden dann die Read-Methode von IronBarcode, um die Barcodes zu lesen.

Was ist IronDrawing und wie hilft es beim Lesen von Barcodes?

IronDrawing ist eine kostenlose Open-Source-Bibliothek von Iron Software, die das implizite Konvertieren von System.Drawing-Objekten in AnyBitmap ermöglicht. Dies erleichtert das Lesen von Barcodes auf Nicht-Windows-Betriebssystemen, indem diese Objekte mit IronBarcode kompatibel gemacht werden.

Kann ich IronBarcode verwenden, um Barcodes auf MacOS und Linux zu lesen?

Ja, indem Sie IronDrawing verwenden, können Sie System.Drawing-Objekte in AnyBitmap umwandeln, wodurch IronBarcode Barcodes auf MacOS und Linux lesen kann, indem die Einschränkung überwunden wird, dass System.Drawing nur unter Windows verfügbar ist.

Welche Bildobjekttypen können für das Barcode-Lesen in AnyBitmap umgewandelt werden?

Neben System.Drawing-Objekten können Sie System.Drawing.Bitmap, System.Drawing.Image, SkiaSharp.SKBitmap, SkiaSharp.SKImage und SixLabors.ImageSharp-Objekte für das Barcode-Lesen mit IronBarcode in AnyBitmap umwandeln.

Wie zeige ich erkannte Barcode-Werte mit IronBarcode an?

Nachdem Sie Barcodes mit der Read-Methode von IronBarcode gelesen haben, iterieren Sie durch das BarcodeResult-Array und drucken jeden Barcode-Wert in die Konsole.

Ist IronDrawing enthalten, wenn eine Barcode-Lese-Bibliothek von NuGet installiert wird?

Ja, IronDrawing wird automatisch in Ihr Projekt aufgenommen, wenn Sie IronBarcode von NuGet installieren, und bietet eine nahtlose Integration für das Lesen von Barcodes.

Wie kann das implizite Konvertieren von Bildobjekten bei der Barcode-Verarbeitung helfen?

Das implizite Konvertieren von Bildobjekten in AnyBitmap mit IronDrawing vereinfacht den Prozess, System.Drawing-Objekte mit IronBarcode kompatibel zu machen, und verbessert die Barcode-Verarbeitung auf verschiedenen Betriebssystemen.

Hairil Hasyimi Bin Omar
Software Ingenieur
Wie alle großen Ingenieure ist Hairil ein leidenschaftlicher Lerner. Er verfeinert sein Wissen in C#, Python und Java, um Iron Software-Teammitgliedern Mehrwert zu bieten. Hairil kam von der Universiti Teknologi MARA in Malaysia, wo er seinen Bachelor in Chemie- und Verfahrenstechnik abschloss.
Bereit anzufangen?
Nuget Downloads 1,979,979 | Version: 2025.11 gerade veröffentlicht