Wie man Datenformate ausgibt

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

von Hairil Hasyimi Bin Omar

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 Barcodebild, Barcodetyp, Binärwert, Koordinaten, Höhe, Breite, Seitennummer, Barcode, Seitenausrichtung, 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
  • barcodeTyp
  • binärwert
  • Koordinaten, Höhe und Breite
  • seitenzahl
  • barcode" und "PageOrientation"
  • Text & Wert

Barcode-Bild

Sobald IronBarcode einen Lesevorgang für ein Bild durchführt, werden die im Bild gefundenen Barcodes in BarcodeResult als BarcodeImage Eigenschaft vom Typ AnyBitmap gespeichert. Die Eigenschaft BarcodeImage 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")
VB   C#

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 Eigenschaft BarcodeImage speichern. Schließlich verwenden wir diese Liste, um mit der Methode "CreateMultiFrameTiff" ein mehrseitiges TIFF zu erzeugen.

Bitte beachten Sie
die Eigenschaft "BarcodeImage" von "BarcodeResult" speichert nur die Bilder der Barcodes, die beim Lesen gefunden wurden, 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 von IronBarcode unterstützten Barcodetypen zu erfahren, lesen Sie bitte hier nach artikel.

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

Im obigen Codeausschnitt haben wir den Barcode durch den Aufruf von "BarcodeReader.Read" gelesen()` Methode auf das Eingabebild. Dies gibt das Objekt "BarcodeResults" zurück, das alle "BarcodeResults" vom Lesen aller im Bild vorhandenen Strichcodes speichert. Als Nächstes durchlaufen wir das Objekt "BarcodeResults", um das "BarcodeResult" abzurufen und den Barcodewert und den Barcodetyp auf der Konsole auszugeben.

Binärer Wert

Mit IronBarcode können Benutzer auch das Byte-Array des Barcodewertes abrufen, indem sie die Eigenschaft BinaryValue aus dem Objekt BarcodeResult 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
VB   C#

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 Strichcodes erkannt haben, gehen wir sie durch, greifen auf die Eigenschaft BinaryValue zu und erstellen damit neue QR-Code-Strichcodes.

Barcode-Koordinaten, Höhe und Breite

Eine weitere Eigenschaft des "BarcodeResult"-Objekts, auf die Benutzer zugreifen können, sind die Koordinaten des Strichcodes, 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
VB   C#
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 das Objekt "BarcodeResult" zu erhalten und die Eigenschaften daraus zu extrahieren, lesen wir zunächst die in einer Bilddatei vorhandenen Barcodes mit "BarcodeReader.Read()methode. Gleichzeitig muss die Eingabebilddatei auch in ein "AnyBitmap"-Objekt umgewandelt werden, damit die Redaktionsmethode auf das Bild angewendet werden kann. Sobald wir das "BarcodeResults"-Objekt haben, können wir es in einer Schleife durchlaufen, um die Werte X1, Y1, Width und Height aller im Bild vorhandenen Strichcodes zu ermitteln und sie als "CropRectangle"-Eigenschaften in der Datei "AnyBitmap.Redact" zu verwenden()methode.

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

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 verwendet BarcodeReader.ReadPdf()methode, um die Barcodes in einem mehrseitigen PDF-Dokument zu lesen, die das ObjektBarcodeResultszurückgibt, das jedes im Dokument gefundeneBarcodeResult` speichert. 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 Barcodeausrichtung sowie die Seitenausrichtung, auf der der Barcode gefunden wurde, abrufen. Um diese beiden Informationen zu extrahieren, können Benutzer die Eigenschaften "Rotation" und "PageOrientation" aus dem Objekt "BarcodeResult" abrufen. rotation" gibt eine ganze Zahl zurück, die den Drehwinkel des gefundenen Strichcodes angibt. 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
VB   C#

Das obige einfache Codeschnipsel wurde mit der beigefügten PDF-Beispieleingabe ausgeführt, um zu beweisen, dass Benutzer die Seitenausrichtung und die Barcodedrehung abrufen können, indem sie den Wert von "BarcodeResult.PageOrientation" bzw. "BarcodeResult.Rotation" abrufen. Diese Funktion ist vor allem für die Fehlersuche nützlich.

Bitte beachten Sie
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" gibt einenpageOrientation objekt, das aus Portrait oder Landschaft besteht.

Text und Wert

Die Haupteigenschaft, die die Benutzer bei der Verwendung von IronBarcode abrufen möchten, ist natürlich der Wert und Text des Codes. Diese 2 Eigenschaften werden oft austauschbar verwendet und geben denselben Wert zurück. Abgesehen davon können Benutzer auch `BarcodeResult.ToString()methode, 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
VB   C#

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. Nach der Iteration durch die BarcodeResults, die von BarcodeReader.Read zurückgegeben wurden()in der Methode "BarcodeResult.ToString" wird das Ergebnis des Abrufs der Wert- und Texteigenschaften auf der Konsole ausgegeben()methode, um zu zeigen, dass sie alle denselben Wert ergeben.

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. Da verschiedene Ausgabedatenformate unterstützt werden, kann der Benutzer mit dem von IronBarcode zurückgegebenen Objekt BarcodeResult noch viel mehr tun.

Hairil related to Text und Wert

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.