Cómo leer códigos de barras de GIF y TIFF multipágina/cuadro
IronBarcode admite varias entradas de formato de imagen para la lectura, incluidos los formatos de imagen GIF y TIFF de varias páginas y varios fotogramas. 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
- Descargar la biblioteca C# para leer códigos de barras
- Preparar imágenes GIF y TIFF para la detección de códigos de barras
- Pasar las imágenes GIF y TIFF de varios fotogramas a la función
Leer
método - Aplique filtros de imagen y opciones para mejorar la precisión y el rendimiento
- Convierte imágenes a GIF y TIFF multiimagen
Instalar con NuGet
Install-Package BarCode
Leer imágenes multiframe GIF y TIFF
La lectura de imágenes multiframe GIF y TIFF mediante IronBarcode es tan sencilla como la lectura de una sola imagen, ya que IronBarcode acepta fácilmente los archivos de imagen multipágina en el método BarcodeReader.Read
. Los usuarios no tienen que realizar ninguna preparación de la imagen, ya que todas ellas han sido internalizadas en la librería.
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")
A partir del fragmento de código anterior, podemos agrupar primero una serie de archivos de imagen importándolos en una lista de objetos AnyBitmap
. Esta lista se puede utilizar como parámetro al llamar a los métodos AnyBitmap.CreateMultiFrameTiff
y AnyBitmap.CreateMultiFrameGif
para obtener los objetos TIFF multipágina y GIF multipágina, 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:
Aspecto | GIF multipágina | TIFF multipágina |
---|---|---|
Compresión | Las imágenes GIF utilizan compresión sin pérdidas, lo que significa que no se pierden datos de imagen durante la compresión. El resultado es un tamaño de archivo relativamente mayor que el de los formatos con compresión con pérdida. | Los archivos TIFF pueden utilizar varios métodos de compresión, incluida la compresión sin pérdidas (como LZW) y la compresión con pérdidas (como JPEG). Esta flexibilidad permite a los archivos TIFF encontrar un equilibrio entre el tamaño del archivo y la calidad de la imagen. |
Profundidad de color | El formato GIF admite hasta 256 colores (8 bits de profundidad de color), lo cual es limitado en comparación con otros formatos. Esta paleta de colores limitada puede provocar una pérdida de detalle y precisión cromática, sobre todo en fotografías e imágenes con degradados. | TIFF admite varias profundidades de color, como 1 bit (binario), 8 bits (256 colores), 24 bits (color verdadero) y más. Esta flexibilidad permite a TIFF almacenar imágenes con distintos niveles de detalle de color. |
Transparencia | El GIF admite la transparencia binaria, lo que significa que un solo color puede ser totalmente transparente y el resto de los colores totalmente opacos. Esta falta de transparencia parcial puede provocar a veces bordes dentados en imágenes con transiciones suaves. | TIFF admite múltiples formas de transparencia, incluida la transparencia binaria (similar a GIF) y la transparencia de canal alfa. La transparencia de canal alfa permite transiciones suaves y píxeles semitransparentes, proporcionando efectos de transparencia de alta calidad. |
Animación | El formato GIF permite realizar animaciones sencillas combinando varios fotogramas en un único archivo. Cada fotograma puede tener su propio retardo, creando una forma básica de animación. Las animaciones GIF están muy extendidas en Internet. | TIFF no está diseñado principalmente para animaciones. Aunque puede almacenar múltiples imágenes, carece de soporte de animación integrado como el GIF. Cada página de un archivo TIFF multipágina suele ser una imagen independiente, en lugar de un fotograma de una secuencia de animación. |
Lectura avanzada de códigos de barras
Aunque IronBarcode funciona directamente, algunas imágenes pueden requerir la configuración de la clase BarcodeReaderOptions
para conseguir una lectura precisa y rápida del código de barras. Encontrará más información sobre esta clase en la sección 'Cómo leer códigos de barras de archivos de imagen (jpg, png, gif, tiff, svg, bmp)' artículo.
El siguiente fragmento de código 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 sólo establecemos las propiedades BarcodeReaderOptions
, sino que también aplicamos algunos filtros, concretamente el SharpenFilter
y el 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. Encontrará más información sobre los filtros de corrección de imágenes en la sección 'Cómo utilizar los filtros de corrección de imagen' artículo.
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 la precisión de la lectura y el rendimiento, ExpectBarcodeTypes
para aumentar aún más el rendimiento, e ImageFilters
para aplicar los filtros establecidos en el objeto ImageFilterCollection
para la precisión de la lectura.
Aunque la configuración del objeto BarcodeReaderOptions
es opcional para la mayoría de los casos de uso, es importante que los usuarios saquen el máximo partido de IronBarcode cuando lean códigos de barras de archivos de imagen GIF y TIFF de varias páginas.