Wie man Datenformate ausgibt

Hairil related to Wie man Datenformate ausgibt
Hairil Hasyimi Bin Omar
19. Oktober 2023
Aktualisiert 10. Dezember 2024
Teilen Sie:
This article was translated from English: Does it need improvement?
Translated
View the article in English

Anstatt einfach nur den Barcode zu lesen und die Werte in der Konsole auszudrucken, bietet IronBarcode viel mehr. Es bietet mehrere Ausgabeformate, die dem Benutzer den Weg zur Weiterverarbeitung der Leseergebnisse ebnen. Diese Formate umfassen Eigenschaften wie Barcode-Bild, Barcode-Typ, BinaryValue, Koordinaten, Höhe, Breite, Seitennummer, Barcode, Seitenorientierung, Text und Wert.

Der Benutzer kann diese Eigenschaften innerhalb des Programms weiter bearbeiten. Lassen Sie uns untersuchen, wie diese Eigenschaften verwendet werden können und in welchen Fällen sie hilfreich sind.

Erste Schritte mit IronBarcode

Beginnen Sie noch heute mit der Verwendung von IronBarcode in Ihrem Projekt mit einer kostenlosen Testversion.

Erster Schritt:
green arrow pointer


Ausgabeformate und Anwendungsfälle

BarcodeResult speichert verschiedene nützliche Eigenschaften. Diese Eigenschaften sind im Folgenden aufgeführt:

  • BarcodeImage
  • BarcodeType
  • Binärwert
  • Koordinaten, Höhe und Breite
  • Seitenzahl
  • Barcode und Seitenorientierung
  • Text & Wert

Barcode-Bild

Sobald IronBarcode den Leseprozess an einem Bild durchführt, werden die im Bild gefundenen Barcodes in BarcodeResult als BarcodeImage-Eigenschaft vom Typ AnyBitmap gespeichert. Die BarcodeImage-Eigenschaft speichert die gefundenen Barcode-Bilder. Die Benutzer können dieses Objekt abrufen, um das Bild weiter zu bearbeiten oder es als dauerhafte Kopie zu speichern. Dies ermöglicht eine effiziente und einfache Nutzung, da keine zusätzlichen Codes geschrieben werden müssen, um die Barcodebilder aus einem Bild zu extrahieren.

Das folgende Codeschnipsel veranschaulicht einen möglichen Anwendungsfall für dieses Ausgabeformat

:path=/static-assets/barcode/content-code-examples/how-to/output-data-formats-BarcodeImage.cs
using IronBarCode;
using IronSoftware.Drawing;
using System.Collections.Generic;

// Read barcode from PDF file
BarcodeResults result = BarcodeReader.ReadPdf("test.pdf");

// Create list for barcodes
List<AnyBitmap> barcodeList = new List<AnyBitmap>();

foreach (BarcodeResult barcode in result)
{
    barcodeList.Add(barcode.BarcodeImage);
}

// Create multi-page TIFF
AnyBitmap.CreateMultiFrameTiff(barcodeList).SaveAs("barcodeImages.tif");
Imports IronBarCode
Imports IronSoftware.Drawing
Imports System.Collections.Generic

' Read barcode from PDF file
Private result As BarcodeResults = BarcodeReader.ReadPdf("test.pdf")

' Create list for barcodes
Private barcodeList As New List(Of AnyBitmap)()

For Each barcode As BarcodeResult In result
	barcodeList.Add(barcode.BarcodeImage)
Next barcode

' Create multi-page TIFF
AnyBitmap.CreateMultiFrameTiff(barcodeList).SaveAs("barcodeImages.tif")
$vbLabelText   $csharpLabel

Der obige Codeschnipsel veranschaulicht einen der Anwendungsfälle für dieses Ausgabeformat. Es wurde speziell entwickelt, um ein mehrseitiges TIFF-Bild aus Barcodes zu erstellen, die in einem PDF-Dokument erkannt wurden. Zuerst scannen oder erkennen wir Barcodes in der Beispiel-PDF. Dann erstellen wir eine AnyBitmap-Liste, in der wir die Informationen aus der BarcodeImage-Eigenschaft speichern. Schließlich nutzen wir diese Liste, um mit der CreateMultiFrameTiff-Methode ein mehrseitiges TIFF zu erstellen.

Bitte beachten Sie
Die BarcodeImage-Eigenschaft von BarcodeResult speichert nur die Bilder der während des Lesens gefundenen Barcodes und nicht das gesamte Eingabebild selbst.

Barcode Typ

Diese Eigenschaft hilft dem Benutzer bei der Bestimmung des Barcodetyps im Eingabebild oder -dokument. Die Einschränkung dieser Funktion besteht jedoch darin, dass der Barcodetyp im Bild derjenige sein muss, der von IronBarcode unterstützt wird und gelesen werden kann. Um mehr über die unterstützten Barcode-Typen in IronBarcode zu erfahren, können Benutzer diesen Artikel konsultieren.

Der folgende Codeausschnitt zeigt, wie Benutzer die Barcodewerte sowie den Barcodetyp in einem Bild abrufen können, indem sie die Werte auf der Konsole drucken.

:path=/static-assets/barcode/content-code-examples/how-to/output-data-formats-BarcodeType.cs
using IronBarCode;
using System;

// Read barcode from PNG
BarcodeResults result = BarcodeReader.Read("bc3.png");

// Output barcode type to console
foreach (BarcodeResult barcode in result)
{
    Console.WriteLine("The barcode value is " + barcode.ToString() + " and the barcode type is " + barcode.BarcodeType);
}
Imports IronBarCode
Imports System

' Read barcode from PNG
Private result As BarcodeResults = BarcodeReader.Read("bc3.png")

' Output barcode type to console
For Each barcode As BarcodeResult In result
	Console.WriteLine("The barcode value is " & barcode.ToString() & " and the barcode type is " & barcode.BarcodeType)
Next barcode
$vbLabelText   $csharpLabel

Aus dem obigen Code-Snippet haben wir den Barcode gelesen, indem wir die Methode BarcodeReader.Read() auf dem Eingabebild aufgerufen haben. Dies gibt ein BarcodeResults-Objekt zurück, das alle BarcodeResult speichert, die beim Lesen aller im Bild verfügbaren Barcodes erzeugt wurden. Als Nächstes durchlaufen wir das BarcodeResults-Objekt, um das BarcodeResult abzurufen und den Barcode-Wert sowie den Barcode-Typ auf der Konsole auszugeben.

Binärer Wert

Mit IronBarcode können Benutzer das Byte-Array des Barcode-Werts abrufen, indem sie die BinaryValue-Eigenschaft aus dem BarcodeResult-Objekt abrufen. Dies ermöglicht es dem Benutzer, den Barcodewert innerhalb des Programms weiter zu manipulieren.

Das folgende Codeschnipsel zeigt einen der Anwendungsfälle für das Abrufen des Barcodewertes als Binärdaten

:path=/static-assets/barcode/content-code-examples/how-to/output-data-formats-BinaryValue.cs
using IronBarCode;

// Read barcode from PNG
BarcodeResults result = BarcodeReader.Read("multiple-barcodes.png");

int i = 1;
foreach (BarcodeResult barcode in result)
{
    var binaryValue = barcode.BinaryValue;
    var barcodeType = IronBarCode.BarcodeEncoding.QRCode;

    // Create QR code
    GeneratedBarcode generatedBarcode = BarcodeWriter.CreateBarcode(binaryValue, barcodeType);

    // Export QR code
    generatedBarcode.SaveAsPng($"qrFromBinary{i}.png");
    i++;
}
Imports IronBarCode

' Read barcode from PNG
Private result As BarcodeResults = BarcodeReader.Read("multiple-barcodes.png")

Private i As Integer = 1
For Each barcode As BarcodeResult In result
	Dim binaryValue = barcode.BinaryValue
	Dim barcodeType = IronBarCode.BarcodeEncoding.QRCode

	' Create QR code
	Dim generatedBarcode As GeneratedBarcode = BarcodeWriter.CreateBarcode(binaryValue, barcodeType)

	' Export QR code
	generatedBarcode.SaveAsPng($"qrFromBinary{i}.png")
	i += 1
Next barcode
$vbLabelText   $csharpLabel

Anhand des obigen Codeschnipsels haben wir ein einfaches Programm erstellt, das im Wesentlichen mehrere Barcodes innerhalb eines Bildes in separate neue Bilder von QR-Codes umwandelt. Zunächst scannen wir die Barcodes im PNG-Beispielbild. Sobald wir diese Barcodes erkannt haben, iterieren wir durch sie, greifen auf die BinaryValue-Eigenschaft zu und verwenden sie dann, um neue QR-Code-Barcodes zu erstellen.

Barcode-Koordinaten, Höhe und Breite

Eine weitere Eigenschaft des BarcodeResult-Objekts, auf die Benutzer zugreifen können, sind die Koordinaten des Barcodes, einschließlich X1, Y1 und X2, Y2, sowie seine Höhe und Breite innerhalb einer Bilddatei oder eines Dokuments. Diese Eigenschaften erweisen sich als sehr nützlich, wenn Benutzer Informationen über die Position und die Abmessungen des Strichcodes abrufen müssen. Die Lage und die Abmessungen des Strichcodes sollen anhand einer Abbildung verdeutlicht werden.

:path=/static-assets/barcode/content-code-examples/how-to/output-data-formats-height-width.cs
using IronBarCode;
using IronSoftware.Drawing;
using System.Linq;

// Read barcode from PNG
BarcodeResults result = BarcodeReader.Read("multiple-barcodes.png");

AnyBitmap bitmap = AnyBitmap.FromFile("multiple-barcodes.png");

foreach (BarcodeResult barcode in result)
{
    PointF[] barcodePoints = barcode.Points;

    float x1 = barcodePoints.Select(b => b.X).Min();
    float y1 = barcodePoints.Select(b => b.Y).Min();

    Rectangle rectangle = new Rectangle((int)x1, (int)y1, (int)barcode.Width!, (int)barcode.Height!);

    bitmap = bitmap.Redact(rectangle, Color.Magenta);

    // Save the image
    bitmap.SaveAs("redacted.png", AnyBitmap.ImageFormat.Png);
}
Imports System
Imports IronBarCode
Imports IronSoftware.Drawing
Imports System.Linq

' Read barcode from PNG
Private result As BarcodeResults = BarcodeReader.Read("multiple-barcodes.png")

Private bitmap As AnyBitmap = AnyBitmap.FromFile("multiple-barcodes.png")

For Each barcode As BarcodeResult In result
	Dim barcodePoints() As PointF = barcode.Points

	Dim x1 As Single = barcodePoints.Select(Function(b) b.X).Min()
	Dim y1 As Single = barcodePoints.Select(Function(b) b.Y).Min()

'INSTANT VB TODO TASK: There is no VB equivalent to the C# 'null-forgiving operator':
'ORIGINAL LINE: Rectangle rectangle = new Rectangle((int)x1, (int)y1, (int)barcode.Width!, (int)barcode.Height!);
	Dim rectangle As New Rectangle(CInt(Math.Truncate(x1)), CInt(Math.Truncate(y1)), CInt(barcode.Width), CInt(barcode.Height))

	bitmap = bitmap.Redact(rectangle, Color.Magenta)

	' Save the image
	bitmap.SaveAs("redacted.png", AnyBitmap.ImageFormat.Png)
Next barcode
$vbLabelText   $csharpLabel
Beispieleingabe vor der Schwärzung
Geschwärztes Bild

Das obige Codeschnipsel wurde verwendet, um mehrere Strichcodes in einer Bilddatei zu redigieren. Um dies zu erreichen, haben wir 2 Bibliotheken miteinander kombiniert, nämlich IronBarcode und IronDrawing. Um ein BarcodeResult-Objekt zu erhalten und die Eigenschaften daraus zu extrahieren, lesen wir zunächst die in einer Bilddatei verfügbaren Barcodes mithilfe der BarcodeReader.Read()-Methode. Gleichzeitig muss die Eingabebilddatei ebenfalls in ein AnyBitmap-Objekt konvertiert werden, um die Schwärzungsmethode auf das Bild anzuwenden. Sobald wir das BarcodeResults-Objekt haben, können wir eine Schleife anwenden und es durchlaufen, um die X1, Y1, Breite und Höhe jedes verfügbaren Barcodes im Bild zu erhalten und diese als CropRectangle-Eigenschaften in der AnyBitmap.Redact()-Methode verwenden.

Seitenzahl

Die Benutzer können auch die Seitenzahl abrufen, auf der der Barcode gefunden wurde. Dies ist eine hilfreiche Funktion für Benutzer, die ein mehrseitiges Dokument verwenden möchten, das mehrere Barcodes enthält, und die für die weitere Verarbeitung wissen müssen, wo sich die Barcodes im Dokument befinden.

Schauen wir uns das folgende Codeschnipsel an:

:path=/static-assets/barcode/content-code-examples/how-to/output-data-formats-page-number.cs
using IronBarCode;
using System;

// Read barcode from PDF
BarcodeResults result = BarcodeReader.ReadPdf("test.pdf");

// Output page number to console
foreach (BarcodeResult barcode in result)
{
    Console.WriteLine("The barcode value " + barcode.ToString() + " is found on page number " + barcode.PageNumber);
}
Imports IronBarCode
Imports System

' Read barcode from PDF
Private result As BarcodeResults = BarcodeReader.ReadPdf("test.pdf")

' Output page number to console
For Each barcode As BarcodeResult In result
	Console.WriteLine("The barcode value " & barcode.ToString() & " is found on page number " & barcode.PageNumber)
Next barcode
$vbLabelText   $csharpLabel

Das obige einfache Codeschnipsel demonstriert einen Anwendungsfall, bei dem das Programm den Wert von Barcodes in einem mehrseitigen PDF-Dokument sowie die Seitenzahlen zurückgeben soll. Der obige Codeausschnitt verwendete die Methode BarcodeReader.ReadPdf(), um die Barcodes in einem mehrseitigen PDF-Dokument zu lesen. Dies gab ein BarcodeResults-Objekt zurück, das jedes im Dokument gefundene BarcodeResult speicherte. Schleife anwenden und jedes Element im Objekt durchlaufen, um den Wert der Strichcodes und die Seitenzahl, auf der die Strichcodes gefunden wurden, zu ermitteln. Abgesehen von diesem Anwendungsfall können Benutzer diese Eigenschaft auch zur Fehlersuche verwenden, wenn alle Barcodes in einem Dokument gelesen werden konnten.

Bitte beachten Sie
Der von dieser Eigenschaft zurückgegebene Wert ist 1-basiert, was bedeutet, dass die erste Seite immer eins und nicht null ist.

Barcodedrehung und Seitenausrichtung

Mit IronBarcode können Benutzer auch Informationen über die Barcode-Ausrichtung sowie die Seitenorientierung abrufen, auf der der Barcode gefunden wurde. Um diese 2 Informationen zu extrahieren, können Benutzer die Eigenschaften Rotation und PageOrientation des BarcodeResult-Objekts abrufen. Rotation wird eine Ganzzahl zurückgeben, die den Drehwinkel des gefundenen Barcodes darstellt. Bitte beachten Sie jedoch, dass

Schauen wir uns das folgende Codeschnipsel an:

:path=/static-assets/barcode/content-code-examples/how-to/output-data-formats-orientation.cs
using IronBarCode;
using System;

// Read barcode from PDF
BarcodeResults result = BarcodeReader.ReadPdf("test.pdf");

// Output page orientation and rotation to console
foreach (BarcodeResult barcode in result)
{
    Console.WriteLine(barcode.Value);
    Console.WriteLine(barcode.PageOrientation);
    Console.WriteLine(barcode.Rotation);
}
Imports IronBarCode
Imports System

' Read barcode from PDF
Private result As BarcodeResults = BarcodeReader.ReadPdf("test.pdf")

' Output page orientation and rotation to console
For Each barcode As BarcodeResult In result
	Console.WriteLine(barcode.Value)
	Console.WriteLine(barcode.PageOrientation)
	Console.WriteLine(barcode.Rotation)
Next barcode
$vbLabelText   $csharpLabel

Der einfache Code-Schnipsel oben wurde mit der angehängten Beispiel-PDF-Eingabe ausgeführt, um zu beweisen, dass Benutzer die Seitenorientierung und die Barcode-Drehung abrufen können, indem sie den Wert von BarcodeResult.PageOrientation beziehungsweise BarcodeResult.Rotation erhalten. Diese Funktion ist vor allem für die Fehlersuche nützlich.

{i:(IronBarcode kann nur Barcodes mit einer Drehung von 0, 90, 180 und 270 Grad lesen. IronBarcode gibt keinen Wert zurück, wenn der Barcode einen anderen Rotationswert als den angegebenen hat. PageOrientation wird ein PageOrientation-Objekt zurückgeben, das aus Hochformat oder Querformat besteht.

Text und Wert

Natürlich ist die Hauptsache, die Benutzer abrufen möchten, wenn sie IronBarcode verwenden, den Wert und den Text zu kennen. Diese 2 Eigenschaften werden oft austauschbar verwendet und geben denselben Wert zurück. Abgesehen davon können Nutzer auch die Methode BarcodeResult.ToString() verwenden, um das gleiche Ergebnis zu erzielen. Das folgende Codeschnipsel zeigt dies:

:path=/static-assets/barcode/content-code-examples/how-to/output-data-formats-text-value.cs
using IronBarCode;
using System;

// Read barcode from PDF
BarcodeResults result = BarcodeReader.ReadPdf("barcodestamped3.pdf");

// Output text value to console
foreach (BarcodeResult barcode in result)
{
    Console.WriteLine(barcode.Value);
    Console.WriteLine(barcode.Text);
    Console.WriteLine(barcode.ToString());
}
Imports IronBarCode
Imports System

' Read barcode from PDF
Private result As BarcodeResults = BarcodeReader.ReadPdf("barcodestamped3.pdf")

' Output text value to console
For Each barcode As BarcodeResult In result
	Console.WriteLine(barcode.Value)
	Console.WriteLine(barcode.Text)
	Console.WriteLine(barcode.ToString())
Next barcode
$vbLabelText   $csharpLabel

Aus dem obigen Codeschnipsel geht hervor, dass Benutzer nur ein paar Zeilen Code verwenden müssen, um mit IronBarcode einen Barcode in einem Bild zu lesen. Nachdem wir die BarcodeResults, die von der Methode BarcodeReader.Read() zurückgegeben wurden, durchlaufen haben, geben wir das Ergebnis des Abrufs der Wert- und Texteigenschaften sowie des Aufrufs der Methode BarcodeResult.ToString() in der Konsole aus, um zu zeigen, dass alle diese den gleichen Wert zurückgegeben haben.

Kurz gesagt, IronBarcode ist eine perfekte API für Benutzer, um mehrere Operationen in Bezug auf Barcodes durchzuführen, und nicht nur auf das Schreiben und Dekodieren von Barcodes beschränkt. Mit verschiedenen unterstützten Ausgabedatenformaten können Benutzer mit dem BarcodeResult-Objekt, das von IronBarcode zurückgegeben wird, viel mehr tun.

Hairil related to Text und Wert
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.