Lesen von Strichcodes aus System.Drawing-Objekten
System.Drawing-Objekte werden in .NET häufig für Aufgaben im Zusammenhang mit der Bildverarbeitung von Entwicklern verwendet. Microsoft hat jedoch den Support für System.Drawing auf anderen Betriebssystemen wie MacOS und Linux eingestellt 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. Dies liegt daran, dass die Arbeit mit Barcodes typischerweise die Verwendung von Objekten wie Grafiken, Bildern und Schriftarten beinhaltet.
Um dieses Problem zu lösen, haben wir eine alternative Lösung eingeführt: IronDrawing. Diese kostenlose und Open-Source-Bibliothek, initiiert von IronSoftware, zielt darauf ab, den Prozess zu vereinfachen, es auf anderen Betriebssystemen als Windows lauffähig zu machen. Dies bietet eine benutzerfreundliche Erfahrung für unsere Nutzer. Sobald Sie IronBarcode von NuGet installieren, wird IronDrawing automatisch in Ihr Projekt eingebunden.
Erste Schritte mit IronBarcode
Beginnen Sie noch heute mit der Verwendung von IronBarcode in Ihrem Projekt mit einer kostenlosen Testversion.
Lesen von Strichcodes aus System.Drawing-Objekten
- Download the C# library for reading barcodes from System.Drawing
- Verwenden Sie IronDrawing, um System.Drawing-Objekte in AnyBitmap umzuwandeln
- Verwenden Sie die
Read
-Methode, um Barcodes aus AnyBitmap-Objekten zu lesen - Zeigen Sie die erkannten Barcode-Werte in der Konsole an
- In einem anderen Artikel erfahren Sie, wie IronDrawing für den Umgang mit Farben und Schriften verwendet wird
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 die implizite Umwandlung von Bildobjekten aus System.Drawing in IronSoftware.Drawing-Bildobjekte, die AnyBitmap genannt werden.
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
Benutzer können das folgende Codebeispiel für das Umwandeln von Objekten oben heranziehen. Unten ist ein Codeausschnitt, der zeigt, wie Bilder von Barcodes aus System.Drawing-Objekten in IronSoftware.Drawing.AnyBitmap umgewandelt werden können.
: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)
Aus dem obigen Codeausschnitt 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 problemlos akzeptieren, ohne dass eine zusätzliche Konfiguration erforderlich ist. Dies bietet Entwicklern, die IronBarcode mit System.Drawing-Objekten verwenden, die auf anderen Betriebssystemen als Windows nicht unterstützt werden, eine einfache Handhabung. 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
Der obige Codeschnipsel ist eine Erweiterung des vorherigen. Sobald wir die AnyBitmap-Liste gefüllt hatten, iterierten wir durch die Liste und riefen die Read
-Methode für jedes AnyBitmap-Objekt als Parameter auf, was dann IronBarcode.BarcodeResults zurückgab. Wir haben dann das zurückgegebene Objekt durchlaufen, um den Barcodewert auf der Konsole auszugeben.
Der Funktionsbereich in IronSoftware.Drawing ist nicht nur auf das Konvertieren von Bildern beschränkt. Es wird auch stark in anderen Aspekten der Bildverarbeitung verwendet, wie z.B. Farben und Schriften, die nützlich beim Styling von Barcodes und QR-Codes sind. Benutzer können erkunden, wie wir IronDrawing verwenden, um QR-Codes anzupassen und Logos hinzuzufügen.