Lesen von Barcodes aus Multi-Page/Frame GIF und TIFF

Hairil related to Lesen von Barcodes aus Multi-Page/Frame GIF und TIFF
Hairil Hasyimi Bin Omar
31. Oktober 2023
Aktualisiert 10. Dezember 2024
Teilen Sie:
This article was translated from English: Does it need improvement?
Translated
View the article in English

IronBarcode unterstützt verschiedene Bildformateingaben zum Lesen, einschließlich mehrseitiger und mehrrahmiger GIF- und TIFF-Bildformate. Dies erleichtert den Benutzern die Verwendung des Bildes, ohne dass sie die Rahmen oder Seiten einer TIFF- oder GIF-Datei manuell trennen müssen. Sehen wir uns an, wie IronBarcode diese Dateiformate lesen kann.

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


Lesen von GIF- und TIFF-Multiframe-Bildern

Das Lesen von Mehrfachrahmen-GIF- und TIFF-Bildern mit IronBarcode ist genauso einfach wie das Lesen einzelner Bilder, da IronBarcode die mehrseitigen Bilddateien problemlos in die BarcodeReader.Read-Methode akzeptiert. Die Benutzer müssen keine Bildvorbereitung durchführen, da dies alles in der Bibliothek intern gehandhabt wird.

Das folgende Codebeispiel zeigt, wie mehrseitige GIF- und TIFF-Dateien gelesen werden können:

:path=/static-assets/barcode/content-code-examples/how-to/read-barcodes-from-multi-page-frame-tiff-gif-read-tif.cs
using IronBarCode;
using System;

// Read barcode from TIF image
BarcodeResults results = BarcodeReader.Read("sample.tif");

// Output the barcodes value to console
foreach (var result in results)
{
    Console.WriteLine(result.Value);
}

Bilder in GIF und TIFF konvertieren

Lernen Sie, wie Sie Bilder mit unserer Open-Source-Bibliothek IronDrawing in mehrseitige TIFF- und GIF-Dateien umwandeln können. Schauen wir uns nun das folgende Codebeispiel an, um ein mehrseitiges GIF- oder TIFF-Bild zu erzeugen.

:path=/static-assets/barcode/content-code-examples/how-to/read-barcodes-from-multi-page-frame-tiff-gif-create-tiff-gif.cs
using IronBarCode;
using IronSoftware.Drawing;
using System.Collections.Generic;

// Import images
List<AnyBitmap> images = new List<AnyBitmap>()
{
    AnyBitmap.FromFile("image1.png"),
    AnyBitmap.FromFile("image2.png"),
    AnyBitmap.FromFile("image3.png"),
    AnyBitmap.FromFile("image4.jpg"),
    AnyBitmap.FromFile("image5.jpg")
};

// Convert TIFF from images
AnyBitmap tiffImage = AnyBitmap.CreateMultiFrameTiff(images);

// Export TIFF
tiffImage.SaveAs("multiframetiff.tiff");

// Convert GIF from images
AnyBitmap gifImage = AnyBitmap.CreateMultiFrameGif(images);

// Export GIF
gifImage.SaveAs("multiframegif1.gif");

Aus dem obigen Codebeispiel können wir zuerst eine Anzahl von Bilddateien gruppieren, indem wir sie in eine Liste von AnyBitmap-Objekten importieren. Diese Liste kann dann als Parameter verwendet werden, wenn die Methoden AnyBitmap.CreateMultiFrameTiff und AnyBitmap.CreateMultiFrameGif aufgerufen werden, um die mehrseitigen TIFF- bzw. GIF-Objekte zu erhalten.

Obwohl sowohl das mehrseitige GIF- als auch das TIFF-Format eine Möglichkeit bieten, Bilder in einer einzigen Datei zusammenzufassen, gibt es einige Unterschiede zwischen den beiden Formaten, die im Folgenden erläutert werden:

AspectMultipage GIFMultipage TIFF
CompressionGIF images use lossless compression, meaning that no image data is lost during compression. This results in relatively larger file sizes compared to formats with lossy compression.TIFF files can use various compression methods, including lossless compression (such as LZW) and lossy compression (such as JPEG). This flexibility allows TIFF files to balance between file size and image quality.
Color DepthGIF supports up to 256 colors (8-bit color depth), which is limited compared to other formats. This limited color palette can result in a loss of detail and color accuracy, especially for photographs and images with gradientsTIFF supports various color depths, including 1-bit (binary), 8-bit (256 colors), 24-bit (true color), and more. This flexibility allows TIFF to store images with different levels of color detail.
TransparencyGIF supports binary transparency, which means that a single color can be fully transparent, and the rest of the colors are fully opaque. This lack of partial transparency can sometimes lead to jagged edges in images with smooth transitions.TIFF supports multiple forms of transparency, including binary transparency (similar to GIF) and alpha channel transparency. Alpha channel transparency allows for smooth transitions and semi-transparent pixels, providing high-quality transparency effects.
AnimationGIF supports simple animations by combining multiple frames into a single file. Each frame can have its own time delay, creating a basic form of animation. GIF animations are widely supported on the web.TIFF is not primarily designed for animations. While it can store multiple images, it lacks built-in animation support like GIF. Each page in a multipage TIFF file is typically a separate image rather than a frame in an animation sequence.

Fortgeschrittenes Barcode-Lesen

Obwohl IronBarcode direkt einsatzbereit ist, kann es erforderlich sein, die BarcodeReaderOptions-Klasse zu konfigurieren, um eine genaue und schnelle Barcodelesung zu erreichen. Weitere Informationen zu dieser Klasse finden Sie im Artikel 'Wie man Barcodes aus Bilddateien liest (jpg, png, gif, tiff, svg, bmp)'.

Der folgende Codeausschnitt bietet Beispiele für die erforderlichen Eigenschaften, die in der BarcodeReaderOptions-Klasse konfiguriert werden können.

:path=/static-assets/barcode/content-code-examples/how-to/read-barcodes-from-multi-page-frame-tiff-gif-advance.cs
using IronBarCode;
using System;

// Configure filters
ImageFilterCollection filters = new ImageFilterCollection()
{
    new SharpenFilter(3.5f),
    new ContrastFilter(2)
};

// Configure options
BarcodeReaderOptions options = new BarcodeReaderOptions()
{
    ExpectBarcodeTypes = IronBarCode.BarcodeEncoding.QRCode,
    ImageFilters = filters,
    ExpectMultipleBarcodes = true,
    Speed = ReadingSpeed.Balanced
};

// Read barcode from TIF image
BarcodeResults results = BarcodeReader.Read("sample.tif", options);

// Output the barcodes value to console
foreach (var result in results)
{
    Console.WriteLine(result.Value);
}

Im Codeausschnitt setzen wir nicht nur die Eigenschaften von BarcodeReaderOptions, sondern wir wenden auch einige Filter an, insbesondere den SharpenFilter und ContrastFilter. Diese Filter tragen wesentlich dazu bei, die Klarheit unscharfer Bilder für die Erkennung und das Lesen von Strichcodes zu verbessern. Weitere Informationen zu Bildkorrekturfiltern finden Sie im Artikel 'Wie man Bildkorrekturfilter verwendet'.

Für das BarcodeReaderOptions-Objekt empfehlen wir den Benutzern, ExpectMultipleBarcodes einzuschließen, damit IronBarcode alle verfügbaren Barcodes in der Bilddatei scannt, Speed um die Balance zwischen Lesegenauigkeit und Leistung zu wahren, ExpectBarcodeTypes um die Leistung weiter zu steigern, und ImageFilters, um die im ImageFilterCollection-Objekt festgelegten Filter für die Lesegenauigkeit anzuwenden.

Obwohl das Festlegen des BarcodeReaderOptions-Objekts für die meisten Anwendungsfälle optional ist, ist es wichtig, dass Benutzer von IronBarcode optimal profitieren, wenn sie Barcodes aus mehrseitigen GIF- und TIFF-Bilddateien lesen.

Hairil related to Fortgeschrittenes Barcode-Lesen
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.