Lesen von Strichcodes aus System.Drawing-Objekten

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

von Hairil Hasyimi Bin Omar

System.Drawing-Objekte werden in .NET häufig für Aufgaben im Zusammenhang mit der Bildverarbeitung von Entwicklern verwendet. Microsoft hat jedocheinstellung der Unterstützung für System.Drawing auf anderen Betriebssystemen, wie MacOS und Linux, und unterstützt jetzt ausschließlich Windows. Diese wichtige Änderung hat zu zahlreichen Problemen für Entwickler geführt, die IronBarcode auf anderen Betriebssystemen als Windows verwenden. Das liegt daran, dass bei der Arbeit mit Strichcodes normalerweise Objekte wie Grafiken, Bilder und Schriftarten verwendet werden.

Um dieses Problem zu lösen, haben wir eine alternative Lösung eingeführt:EisenZeichnung. Diese kostenlose und open-source Bibliothek, initiiert von IronSoftware, zielt darauf ab, den Prozess derfunktionieren der Software auf verschiedenen Betriebssystemen andere als Windows. Dies bietet eine benutzerfreundliche Erfahrung für unsere Nutzer. Sobald Sie IronBarcode von NuGet installieren, wird IronDrawing automatisch in Ihr Projekt eingebunden.

C# NuGet-Bibliothek für

Installieren mit NuGet

Install-Package BarCode
oder
Java PDF JAR

Herunterladen DLL

DLL herunterladen

Manuelle Installation in Ihr Projekt

C# NuGet-Bibliothek für

Installieren mit NuGet

Install-Package BarCode
oder
Java PDF JAR

Herunterladen DLL

DLL herunterladen

Manuelle Installation in Ihr Projekt

Fangen Sie noch heute an, IronPDF in Ihrem Projekt mit einer kostenlosen Testversion zu verwenden.

Erster Schritt:
green arrow pointer

Schau dir an IronBarcode an Nuget Für schnelle Installation und Bereitstellung. Mit über 8 Millionen Downloads verwandelt es mit C#.

C# NuGet-Bibliothek für nuget.org/packages/BarCode/
Install-Package BarCode

Erwägen Sie die Installation der IronBarcode DLL direkt. Laden Sie es herunter und installieren Sie es manuell für Ihr Projekt oder die GAC-Form: IronBarCode.zip

Manuelle Installation in Ihr Projekt

DLL herunterladen

Cast System.Drawing zu AnyBitmap

Beim Lesen von Strichcodes aus System.Drawing wird das Objekt einfach auf AnyBitmap gecastet. Bei der Entwicklung von IronDrawing stand die Benutzerfreundlichkeit im Vordergrund. Folglich unterstützt IronDrawing das implizite Casting von Bildobjekten aus System.Drawing in IronSoftware.Drawing Bildobjekte namens AnyBitmap.

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

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

    Die Benutzer können sich auf Folgendes beziehencode-Beispiel für Gussobjekte oben. Der folgende Codeausschnitt zeigt, wie man Bilder von Barcodes aus System.Drawing-Objekten in IronSoftware.Drawing.AnyBitmap umwandelt.

: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)
VB   C#

Aus dem obigen Codeschnipsel haben wir zwei Barcode-Bilder als System.Drawing.Bitmap und System.Drawing.Image geladen. Wir wandeln sie dann implizit in AnyBitmap um, indem wir sie einfach AnyBitmap-Objekten zuweisen. Anschließend haben wir diese Objekte in eine AnyBitmap-Liste aufgenommen.

Barcodes von AnyBitmap lesen

IronBarcode kann IronSoftware.Drawing.AnyBitmap-Objekte in allen seinen Methoden akzeptieren, ohne dass eine zusätzliche Konfiguration erforderlich ist. Dies erleichtert Entwicklern, die IronBarcode mit System.Drawing-Objekten verwenden, die auf anderen Betriebssystemen als Windows nicht unterstützt werden, die Arbeit. Der nachstehende Codeschnipsel zeigt, wie dies zu bewerkstelligen ist.

: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
VB   C#

Der obige Codeschnipsel ist eine Erweiterung des vorherigen. Nachdem wir die AnyBitmap-Liste ausgefüllt hatten, durchliefen wir die Liste und riefen die Methode "Read" für jedes AnyBitmap-Objekt als Parameter auf, die dann IronBarcode.BarcodeResults zurückgab. Wir haben dann das zurückgegebene Objekt durchlaufen, um den Barcodewert auf der Konsole auszugeben.

Der Funktionsumfang von IronSoftware.Drawing ist nicht nur auf das Gießen von Bildern beschränkt. Sie wird auch in anderen Bereichen der Bildverarbeitung stark genutzt, z. B. für Farben und Schriftarten, die bei der Gestaltung von Strichcodes und QR-Codes nützlich sind. Die Benutzer können erkunden, wie wir IronDrawing einsetzen, umanpassen und Hinzufügen von Logos zu QR-Codes.

Hairil Hasyimi Bin Omar

Software-Ingenieur

Wie alle großartigen Ingenieure ist Hairil ein eifriger Lerner. Er verfeinert seine Kenntnisse in C#, Python und Java und nutzt dieses Wissen, um den Teammitgliedern von Iron Software einen Mehrwert zu bieten. Hairil kam von der Universiti Teknologi MARA in Malaysia zum Iron Software-Team, wo er einen Bachelor-Abschluss in Chemie- und Verfahrenstechnik erwarb.