Comment lire des codes-barres dans des images GIF et TIFF à pages multiples ?

Hairil related to Comment lire des codes-barres dans des images GIF et TIFF à pages multiples ?
Hairil Hasyimi Bin Omar
octobre 31, 2023
Mise à jour décembre 10, 2024
Partager:
This article was translated from English: Does it need improvement?
Translated
View the article in English

IronBarcode prend en charge divers formats d'image en entrée pour la lecture, y compris les formats d'image GIF et TIFF multi-pages et multi-images. Cela permet aux utilisateurs d'utiliser simplement l'image sans avoir à séparer manuellement les cadres ou les pages d'un fichier TIFF ou GIF. Voyons comment utiliser IronBarcode pour lire ces formats de fichiers.

Commencer avec IronBarcode

Commencez à utiliser IronBarcode dans votre projet dès aujourd'hui avec un essai gratuit.

Première étape :
green arrow pointer


Lire des images multiframes GIF et TIFF

Lire des images GIF et TIFF multiframe avec IronBarcode est aussi simple que de lire une seule image, car IronBarcode accepte facilement les fichiers image multipages dans la méthode BarcodeReader.Read. Les utilisateurs n'ont pas besoin de faire de préparation d'image car tout a été internalisé dans la bibliothèque.

L'exemple de code ci-dessous montre comment lire des fichiers GIF et TIFF multipages :

: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);
}
Imports IronBarCode
Imports System

' Read barcode from TIF image
Private results As BarcodeResults = BarcodeReader.Read("sample.tif")

' Output the barcodes value to console
For Each result In results
	Console.WriteLine(result.Value)
Next result
$vbLabelText   $csharpLabel

Convertir des images en GIF et TIFF

Apprenez comment convertir des images en TIFF et GIF multipages en utilisant notre bibliothèque open-source, IronDrawing. Examinons maintenant l'exemple de code ci-dessous, qui explique comment générer une image GIF ou TIFF multipage.

: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");
Imports IronBarCode
Imports IronSoftware.Drawing
Imports System.Collections.Generic

' Import images
Private images As New List(Of AnyBitmap)() From {AnyBitmap.FromFile("image1.png"), AnyBitmap.FromFile("image2.png"), AnyBitmap.FromFile("image3.png"), AnyBitmap.FromFile("image4.jpg"), AnyBitmap.FromFile("image5.jpg")}

' Convert TIFF from images
Private tiffImage As AnyBitmap = AnyBitmap.CreateMultiFrameTiff(images)

' Export TIFF
tiffImage.SaveAs("multiframetiff.tiff")

' Convert GIF from images
Dim gifImage As AnyBitmap = AnyBitmap.CreateMultiFrameGif(images)

' Export GIF
gifImage.SaveAs("multiframegif1.gif")
$vbLabelText   $csharpLabel

À partir de l'extrait de code ci-dessus, nous pouvons d'abord regrouper un certain nombre de fichiers image en les important dans une liste d'objets AnyBitmap. Cette liste peut ensuite être utilisée comme paramètre lors de l'appel des méthodes AnyBitmap.CreateMultiFrameTiff et AnyBitmap.CreateMultiFrameGif pour obtenir respectivement les objets TIFF multipage et GIF multipage.

Bien que les formats GIF multipage et TIFF permettent tous deux de regrouper des images dans un seul fichier, il existe plusieurs différences entre ces deux formats, comme indiqué ci-dessous :

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.

Lecture avancée des codes-barres

Bien que IronBarcode fonctionne directement dès l'installation, certaines images peuvent nécessiter la configuration de la classe BarcodeReaderOptions pour obtenir une lecture de code-barres précise et rapide. Vous pouvez trouver plus d'informations sur cette classe dans l'article 'Comment lire les codes-barres à partir de fichiers image (jpg, png, gif, tiff, svg, bmp)'.

Le code d'exemple ci-dessous fournit des exemples des propriétés nécessaires qui peuvent être configurées dans la classe BarcodeReaderOptions.

: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);
}
Imports IronBarCode
Imports System

' Configure filters
Private filters As New ImageFilterCollection() From {
	New SharpenFilter(3.5F),
	New ContrastFilter(2)
}

' Configure options
Private options As New BarcodeReaderOptions() With {
	.ExpectBarcodeTypes = IronBarCode.BarcodeEncoding.QRCode,
	.ImageFilters = filters,
	.ExpectMultipleBarcodes = True,
	.Speed = ReadingSpeed.Balanced
}

' Read barcode from TIF image
Private results As BarcodeResults = BarcodeReader.Read("sample.tif", options)

' Output the barcodes value to console
For Each result In results
	Console.WriteLine(result.Value)
Next result
$vbLabelText   $csharpLabel

Dans l'extrait de code, nous définissons non seulement les propriétés de BarcodeReaderOptions, mais nous appliquons également certains filtres, notamment le SharpenFilter et le ContrastFilter. Ces filtres permettent essentiellement d'améliorer la clarté des images floues pour la détection et la lecture des codes-barres. Vous pouvez trouver plus d'informations sur les filtres de correction d'image dans l'article 'Comment utiliser les filtres de correction d'image'.

Pour l'objet BarcodeReaderOptions, nous suggérons aux utilisateurs d'inclure ExpectMultipleBarcodes pour qu'IronBarcode scanne tous les codes-barres disponibles dans le fichier image, Speed pour équilibrer entre la précision de lecture et la performance, ExpectBarcodeTypes pour augmenter encore la performance, et ImageFilters pour appliquer les filtres définis dans l'objet ImageFilterCollection pour la précision de lecture.

Bien que la configuration de l'objet BarcodeReaderOptions soit facultative pour la plupart des cas d'utilisation, il est important pour les utilisateurs de tirer le meilleur parti d'IronBarcode lors de la lecture de codes-barres à partir de fichiers d'image GIF et TIFF multipages.

Hairil related to Lecture avancée des codes-barres
Ingénieur logiciel
Comme tous les grands ingénieurs, Hairil est un fervent apprenant. Il affine ses connaissances en C#, Python et Java, et les utilise pour apporter une valeur ajoutée aux membres de l'équipe d'Iron Software. Hairil a rejoint l'équipe d'Iron Software en provenance de l'Universiti Teknologi MARA en Malaisie, où il a obtenu une licence en génie chimique et des procédés.