Cómo leer códigos de barras de GIF y TIFF multipágina/cuadro
IronBarcode admite varios formatos de imagen de entrada para la lectura, incluidos los formatos de imagen GIF y TIFF de varias páginas y varios cuadros. Esto facilita a los usuarios el uso de la imagen sin tener que separar manualmente los cuadros o páginas de un archivo TIFF o GIF. Exploremos cómo utilizar IronBarcode para leer estos formatos de archivo.
Cómo leer códigos de barras de GIF y TIFF multipágina/cuadro
- Download the C# library for reading barcodes
- Preparar imágenes GIF y TIFF para la detección de códigos de barras
- Pase las imágenes GIF y TIFF de múltiples fotogramas al método
Read
- Aplicar filtros de imagen y opciones para mejorar la precisión y el rendimiento
- Convert images to multi-frame GIF and TIFF
Empezar a utilizar IronBarcode
Comience a usar IronBarcode en su proyecto hoy con una prueba gratuita.
Leer imágenes multiframe GIF y TIFF
Leer imágenes GIF y TIFF de múltiples fotogramas con IronBarcode es tan fácil como leer una imagen única, porque IronBarcode acepta fácilmente los archivos de imágenes de múltiples páginas en el método BarcodeReader.Read
. Los usuarios no tienen que hacer ninguna preparación de imagen, ya que todo se ha internalizado en la biblioteca.
El siguiente ejemplo de código muestra cómo leer archivos GIF y TIFF multipágina:
: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
Convertir imágenes a GIF y TIFF
Aprenda a convertir imágenes a TIFF y GIF multipágina utilizando nuestra biblioteca de código abierto, IronDrawing. Ahora, veamos el siguiente ejemplo de código sobre cómo generar una imagen GIF o TIFF multipágina.
: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")
Del fragmento de código anterior, primero podemos agrupar varios archivos de imagen importándolos en una lista de objetos AnyBitmap
. Esta lista se puede usar como un parámetro al llamar a los métodos AnyBitmap.CreateMultiFrameTiff
y AnyBitmap.CreateMultiFrameGif
para obtener los objetos TIFF y GIF de múltiples páginas, respectivamente.
Aunque tanto GIF multipágina como TIFF ofrecen una forma de agrupar imágenes en un único archivo, existen varias diferencias entre ambos formatos, como se indica a continuación:
Aspect | Multipage GIF | Multipage TIFF |
---|---|---|
Compression | GIF 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 Depth | GIF 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 gradients | TIFF 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. |
Transparency | GIF 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. |
Animation | GIF 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. |
Lectura avanzada de códigos de barras
Aunque IronBarcode funciona directamente nada más sacarlo de la caja, algunas imágenes pueden requerir la configuración de la clase BarcodeReaderOptions
para lograr una lectura de códigos de barras precisa y rápida. Puede encontrar más información sobre esta clase en el artículo 'Cómo leer códigos de barras de archivos de imagen (jpg, png, gif, tiff, svg, bmp)'.
El fragmento de código a continuación proporciona ejemplos de las propiedades necesarias que se pueden configurar en la clase 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
En el fragmento de código, no solo configuramos las propiedades de BarcodeReaderOptions
, sino que también aplicamos algunos filtros, específicamente SharpenFilter
y ContrastFilter
. Estos filtros ayudan esencialmente a mejorar la claridad de las imágenes borrosas para la detección y lectura de códigos de barras. Puede encontrar más información sobre los filtros de corrección de imágenes en el artículo 'Cómo usar filtros de corrección de imágenes'.
Para el objeto BarcodeReaderOptions
, sugerimos que los usuarios incluyan ExpectMultipleBarcodes
para que IronBarcode escanee todos los códigos de barras disponibles en el archivo de imagen, Speed
para equilibrar entre la precisión de lectura y el rendimiento, ExpectBarcodeTypes
para incrementar aún más el rendimiento, y ImageFilters
para aplicar los filtros establecidos en el objeto ImageFilterCollection
para mejorar la precisión de lectura.
Aunque establecer el objeto BarcodeReaderOptions
es opcional para la mayoría de los casos de uso, es importante para que los usuarios aprovechen al máximo IronBarcode al leer códigos de barras de archivos de imagen GIF y TIFF de varias páginas.