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

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

par Hairil Hasyimi Bin Omar

IronBarcode prend en charge plusieurs formats d'image pour la lecture, y compris les formats d'image multi-page et multi-trame GIF et TIFF. 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

La lecture d'images multiframes GIF et TIFF à l'aide d'IronBarcode est aussi facile que la lecture d'une seule image car IronBarcode accepte facilement les fichiers d'images multipages dans la méthode BarcodeReader.Read Les utilisateurs n'ont pas besoin de préparer les images car elles sont toutes internalisées 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
VB   C#

Convertir des images en GIF et TIFF

Apprenez à convertir des images au format TIFF et GIF multipage en utilisant notre bibliothèque open-source,Dessin au fer. 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")
VB   C#

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

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 :

AspectGIF multipageTIFF multipage
CompressionLes images GIF utilisent une compression sans perte, ce qui signifie qu'aucune donnée d'image n'est perdue lors de la compression. La taille des fichiers est donc relativement plus importante que celle des formats à compression avec perte.Les fichiers TIFF peuvent utiliser différentes méthodes de compression, y compris la compression sans perte (telle que LZW) et la compression avec perte (telle que JPEG). Cette flexibilité permet aux fichiers TIFF de trouver un équilibre entre la taille du fichier et la qualité de l'image.
Profondeur de couleurLe format GIF prend en charge jusqu'à 256 couleurs (profondeur de couleur de 8 bits), ce qui est limité par rapport à d'autres formats. Cette palette de couleurs limitée peut entraîner une perte de détails et de précision des couleurs, en particulier pour les photographies et les images avec des dégradésLe format TIFF prend en charge différentes profondeurs de couleurs, notamment 1 bit (binaire), 8 bits (256 couleurs), 24 bits (couleurs réelles), etc. Cette flexibilité permet au format TIFF de stocker des images avec différents niveaux de détail des couleurs.
TransparenceLe format GIF prend en charge la transparence binaire, ce qui signifie qu'une seule couleur peut être totalement transparente, tandis que les autres couleurs sont totalement opaques. Cette absence de transparence partielle peut parfois entraîner des bords irréguliers dans des images aux transitions fluides.Le format TIFF prend en charge plusieurs formes de transparence, notamment la transparence binaire (similaire au format GIF) et la transparence du canal alpha. La transparence du canal alpha permet des transitions fluides et des pixels semi-transparents, offrant des effets de transparence de haute qualité.
AnimationLe format GIF permet de réaliser des animations simples en combinant plusieurs images dans un seul fichier. Chaque image peut avoir son propre délai, créant ainsi une forme d'animation de base. Les animations GIF sont largement prises en charge sur le web.Le format TIFF n'est pas conçu pour les animations. Bien qu'il puisse stocker plusieurs images, il ne dispose pas d'un support d'animation intégré comme le GIF. Chaque page d'un fichier TIFF multipage est généralement une image distincte plutôt qu'une image dans une séquence d'animation.

Lecture avancée des codes-barres

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

L'extrait de code ci-dessous donne 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
VB   C#

Dans cet extrait de code, nous ne nous contentons pas de définir les propriétés de BarcodeReaderOptions, mais nous appliquons également quelques filtres, en particulier SharpenFilter et ContrastFilter. Ces filtres permettent essentiellement d'améliorer la clarté des images floues pour la détection et la lecture des codes-barres. Vous trouverez de plus amples informations sur les filtres de correction d'image dans la sectionComment utiliser les filtres de correction d'image' article.

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 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 afin d'améliorer la précision de lecture.

Bien que la définition de l'objet BarcodeReaderOptions soit optionnelle dans 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'images GIF et TIFF multipages.

Hairil related to Lecture avancée des codes-barres

Hairil Hasyimi Bin Omar

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.