Cómo leer códigos de barras de imágenes GIF y TIFF de varias páginas en C#

Cómo leer códigos de barras de GIF y TIFF multipágina en C#

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

IronBarcode procesa automáticamente archivos TIFF y GIF animados de varias páginas sin separación manual de fotogramas, utilizando una única llamada al método BarcodeReader.Read para extraer todos los códigos de barras de cada fotograma o página del archivo de imagen.

como-encabezado:2(Inicio rápido: Leer códigos de barras completamente desde archivos TIFF o GIF de varias páginas)

IronBarcode carga archivos TIFF o GIF animados de varias páginas y extrae todos los códigos de barras con una sola llamada al método. Sin división de fotogramas ni preprocesamiento manual: pase la ruta del archivo a BarcodeReader.Read para obtener resultados rápidos.

Nuget IconEmpieza a crear PDF con NuGet ahora:

  1. Instalar IronBarcode con el gestor de paquetes NuGet

    PM > Install-Package BarCode

  2. Copie y ejecute este fragmento de código.

    IronBarCode.BarcodeResults results = IronBarCode.BarcodeReader.Read("multiPageImage.tiff");
  3. Despliegue para probar en su entorno real

    Empieza a utilizar IronBarcode en tu proyecto hoy mismo con una prueba gratuita
    arrow pointer

¿Cómo leer imágenes GIF y TIFF multiframe?

<Descripción: Diagrama o captura de pantalla que ilustre el concepto de código -->

Leer imágenes GIF y TIFF con múltiples marcos usando IronBarcode es tan fácil como leer una sola imagen porque IronBarcode acepta directamente archivos de imagen de varias páginas en el método BarcodeReader.Read. No es necesario preparar imágenes, ya que todo el procesamiento está internalizado en la biblioteca. Para obtener una visión general de las capacidades de IronBarcode, consulte nuestra página de características.

¿Por qué IronBarcode gestiona automáticamente las imágenes multiframe?

IronBarcode maneja imágenes multiframe automáticamente para simplificar su flujo de trabajo. Las bibliotecas tradicionales de lectura de códigos de barras suelen requerir extraer fotogramas individuales de animaciones GIF o separar páginas de archivos TIFF antes de procesarlas. Esto añade una complejidad innecesaria y posibles puntos de fallo. La detección inteligente de fotogramas de IronBarcode elimina esta carga analizando internamente la estructura de la imagen e iterando automáticamente a través de cada fotograma o página. Este enfoque garantiza resultados coherentes independientemente del número de fotogramas, al tiempo que mantiene un alto rendimiento mediante una gestión optimizada de la memoria.

El siguiente ejemplo de código muestra la lectura de 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
$vbLabelText   $csharpLabel

¿Qué formatos de imagen son compatibles con la lectura multipágina?

Las capacidades de lectura multipágina de IronBarcode van más allá de los formatos GIF y TIFF. La biblioteca admite todos los formatos de imagen estándar, incluidos JPEG, PNG, BMP y SVG para imágenes de una sola página. En el caso concreto del soporte multipágina, los formatos principales son TIFF y GIF animado. El formato TIFF es especialmente versátil, ya que almacena múltiples imágenes de resolución completa con varios métodos de compresión, lo que lo hace ideal para la digitalización de documentos. Los GIF animados, aunque limitados a 256 colores, son excelentes para almacenar múltiples cuadros de códigos de barras en un formato compacto y fácil de usar en la web. Para necesidades especializadas, también puede leer códigos de barras de documentos PDF que a menudo contienen varias páginas con códigos de barras incrustados.

¿Cuándo debo utilizar imágenes multiframe para escanear códigos de barras?

Las imágenes multiframe son ideales para varios escenarios empresariales. Los sistemas de gestión de documentos utilizan archivos TIFF multipágina como estándar para almacenar facturas escaneadas, documentos de envío o formularios en los que cada página puede contener diferentes códigos de barras. Las operaciones de fabricación y logística suelen utilizar GIF animados para crear flujos de trabajo visuales que muestren múltiples estados de códigos de barras o instrucciones secuenciales de escaneado. Las aplicaciones de procesamiento por lotes se benefician de los formatos multiframe, ya que reducen la sobrecarga de gestión de archivos: en lugar de manejar cientos de archivos de imagen individuales, se trabaja con un único archivo multiframe. Además, al implementar lectura de códigos de barras de flujos, los formatos multitrama pueden reducir significativamente la asignación de memoria y mejorar el rendimiento.

¿Cómo convertir imágenes a GIF y TIFF?

<Descripción: Diagrama o captura de pantalla que ilustre el concepto de código -->

Aprenda a convertir imágenes a TIFF y GIF multipágina utilizando nuestra biblioteca de código abierto, IronDrawing. El siguiente ejemplo de código muestra cómo generar imágenes GIF o TIFF multipágina. Esta capacidad es especialmente útil cuando se consolidan múltiples imágenes de códigos de barras de diversas fuentes en un único archivo para un procesamiento eficiente.

¿Cuál es el proceso para crear archivos TIFF multiframe?

La creación de archivos TIFF multiframe implica combinar varias fuentes de imágenes en un único contenedor TIFF. Comience cargando imágenes individuales en la memoria como objetos de mapa de bits. La clase AnyBitmap de IronDrawing proporciona una interfaz unificada para manejar varios formatos de imagen, gestionando automáticamente las conversiones de formato y garantizando la compatibilidad. Al crear el TIFF multitrama, la biblioteca optimiza los ajustes de compresión para equilibrar el tamaño del archivo y la calidad de la imagen, algo crucial para mantener la legibilidad del código de barras.

: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

En el fragmento de código anterior, primero agrupamos los archivos de imagen importándolos en una lista de objetos AnyBitmap. Utilice esta lista como parámetro cuando llame a los métodos AnyBitmap.CreateMultiFrameTiff y AnyBitmap.CreateMultiFrameGif para obtener los objetos TIFF multipágina y GIF multipágina, respectivamente.

¿En qué se diferencian los formatos GIF y TIFF para el almacenamiento de códigos de barras?

Tanto GIF multipágina como TIFF ofrecen formas de agrupar imágenes en un único archivo, pero difieren significativamente:

AspectoGIF multipáginaTIFF multipágina
CompresiónLas imágenes GIF utilizan compresión sin pérdida, lo que significa que no se pierden datos de la imagen durante la compresión. Esto da como resultado archivos de mayor tamaño en comparación con los formatos con compresión con pérdida.Los archivos TIFF pueden utilizar varios métodos de compresión, incluyendo compresión sin pérdida (como LZW) y compresión con pérdida (como JPEG). Esta flexibilidad permite que los archivos TIFF equilibren el tamaño del archivo con la calidad de la imagen.
Profundidad de ColorGIF admite hasta 256 colores (profundidad de color de 8 bits), una capacidad limitada en comparación con otros formatos. Esta paleta de colores limitada puede provocar pérdida de detalle y precisión del color, especialmente 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 diferentes niveles de detalle de color.
TransparenciaGIF admite transparencia binaria, lo que significa que un solo color puede ser completamente transparente y el resto completamente opaco. Esta falta de transparencia parcial puede provocar bordes irregulares en imágenes con transiciones suaves.TIFF admite múltiples tipos de transparencia, incluyendo la transparencia binaria (similar a GIF) y la transparencia de canal alfa. La transparencia de canal alfa permite transiciones suaves y píxeles semitransparentes, lo que proporciona efectos de transparencia de alta calidad.
AnimaciónGIF permite crear animaciones sencillas combinando varios fotogramas en un solo archivo. Cada fotograma puede tener su propio retardo, creando una forma básica de animación. Las animaciones GIF son ampliamente compatibles en la web.TIFF no está diseñado principalmente para animaciones. Si bien puede almacenar múltiples imágenes, carece de compatibilidad con animaciones integradas como 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.

¿Qué formato elegir para los códigos de barras multipágina?

Elija entre GIF y TIFF en función de su caso de uso específico. Seleccione TIFF cuando trabaje con imágenes de códigos de barras de alta resolución que requieran una conservación precisa de los detalles, como en el archivado de documentos o en aplicaciones de escaneado profesionales. La compatibilidad de TIFF con varios métodos de compresión y profundidades de color lo hace ideal para mantener la calidad de los códigos de barras de distintos tipos, incluidos aquellos con detalles finos como códigos Data Matrix 2D.

Elija GIF cuando el tamaño del archivo sea una preocupación y sus códigos de barras sean formatos lineales sencillos como Código 39 o Código 128. La amplia compatibilidad de GIF con la Web lo hace adecuado para aplicaciones en línea en las que los usuarios pueden previsualizar secuencias de códigos de barras. Sin embargo, evite el GIF para códigos QR complejos o códigos de barras con gradientes de color, ya que la limitación de 256 colores puede afectar a la legibilidad.

¿Cuáles son las consideraciones sobre el tamaño del archivo?

El tamaño de los archivos varía considerablemente de un formato a otro y afecta a la velocidad de almacenamiento, transmisión y procesamiento. Los archivos TIFF con compresión sin pérdidas suelen oscilar entre 10 y 50 KB por imagen de código de barras a 300 ppp, adecuados para calidad de archivo. Con la compresión JPEG dentro de TIFF, los tamaños pueden reducirse en un 70-80% manteniendo una legibilidad aceptable del código de barras. Los archivos GIF suelen ser más pequeños, con una media de 5-15 KB por fotograma para códigos de barras estándar, debido a su limitada paleta de colores. Al implementar lectura de códigos de barras con requisitos de rendimiento específicos, tenga en cuenta que los archivos más pequeños se procesan más rápido, pero pueden sacrificar la precisión en casos extremos.

¿Cómo puedo configurar las opciones avanzadas de lectura de códigos de barras?

<Descripción: Diagrama o captura de pantalla que ilustre el concepto de código -->

Aunque IronBarcode funciona directamente de fábrica, algunas imágenes pueden requerir configurar la clase BarcodeReaderOptions para lograr una lectura de códigos de barras precisa y rápida. 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). Para obtener documentación detallada sobre la API, consulte la referencia BarcodeReaderOptions.

¿Cuándo debo utilizar filtros de imagen para mejorar la precisión?

Los filtros de imagen resultan esenciales cuando la calidad de la imagen no es óptima, algo habitual en archivos de varios fotogramas cuya calidad puede variar de un fotograma a otro. Aplique filtros cuando los códigos de barras aparezcan borrosos debido a las limitaciones del escáner, tengan poco contraste por las malas condiciones de iluminación o contengan ruido por artefactos de compresión. Las funciones de corrección de imágenes de IronBarcode incluyen umbralización adaptativa para condiciones de luz variables, filtros de nitidez para desenfoque por movimiento y mejora del contraste para impresiones descoloridas. En el caso de los archivos de varios fotogramas, los filtros son especialmente valiosos, ya que compensan las variaciones de calidad entre fotogramas sin intervención manual.

El siguiente fragmento de código muestra la configuración de propiedades 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
$vbLabelText   $csharpLabel

¿Qué ajustes de rendimiento debo utilizar para los archivos multipágina?

La optimización del rendimiento de los archivos multipágina requiere equilibrar la velocidad y la precisión en función de sus requisitos. Para el procesamiento de grandes volúmenes en los que la velocidad es fundamental, utilice ReadingSpeed.Faster o ReadingSpeed.Fastest, que reduce la minuciosidad del escaneado pero mejora significativamente el rendimiento, ideal para códigos de barras bien impresos en entornos controlados. Para aplicaciones de misión crítica en las que la precisión es primordial, ReadingSpeed.Detailed garantiza la máxima tasa de detección a costa del tiempo de procesamiento. El ajuste ReadingSpeed.Balanced proporciona un término medio óptimo para la mayoría de las aplicaciones empresariales. Al procesar archivos multipágina, considere la implementación de patrones de lectura asíncrona para procesar fotogramas en paralelo, lo que mejora drásticamente el rendimiento general.

¿Cómo puedo optimizar la velocidad de lectura frente a la precisión?

Optimizar la relación entre velocidad y precisión implica varias configuraciones estratégicas. En primer lugar, especifique los tipos de códigos de barras esperados con <código>ExpectBarcodeTypes</código> para eliminar la comprobación innecesaria de formatos; solo esto puede mejorar la velocidad entre un 40 y un 60%. En segundo lugar, utilice regiones de recorte cuando los códigos de barras aparezcan en ubicaciones consistentes a lo largo de los fotogramas, reduciendo así el área de búsqueda. En tercer lugar, ajuste la propiedad MaxParallelThreads para que coincida con las capacidades de su CPU para un procesamiento paralelo óptimo de los fotogramas. Para optimizar la precisión, active ExpectMultipleBarcodes cuando los marcos puedan contener varios códigos de barras, y aplique los filtros de imagen adecuados en función de las características de su imagen. La función ML confidence threshold también ayuda a filtrar los falsos positivos en imágenes complejas.

¿Cuáles son los pasos habituales para solucionar problemas de lecturas fallidas?

Cuando experimente lecturas fallidas con archivos multiframe, siga este enfoque sistemático. En primer lugar, verifica la calidad de cada fotograma extrayendo y probando fotogramas individuales: si fallan fotogramas individuales, el problema no es específico de varios fotogramas. Compruebe si hay problemas comunes de reconocimiento, como zonas de silencio insuficientes, códigos de barras torcidos o símbolos dañados. Active el modo TryHarder para los códigos de barras difíciles, aunque esto aumenta el tiempo de procesamiento. Para problemas persistentes, implemente corrección de la orientación de la imagen, ya que los códigos de barras girados son una causa común de fallos. Considere la posibilidad de ajustar la resolución: los códigos de barras suelen leerse mejor a 200-300 PPP, con rendimientos decrecientes por encima de 400 PPP. Si persisten los problemas con determinados tipos de códigos de barras, consulte la documentación sobre formatos admitidos para garantizar la compatibilidad.

Aunque la configuración del objeto BarcodeReaderOptions es opcional para la mayoría de los casos de uso, ayuda a sacar el máximo partido de IronBarcode cuando se leen códigos de barras de archivos de imagen GIF y TIFF de varias páginas. Para entornos de producción, comience con la configuración predeterminada y optimícela progresivamente en función de sus requisitos específicos de precisión y métricas de rendimiento.

Preguntas Frecuentes

¿Cómo puedo leer códigos de barras de archivos TIFF multipágina en C#?

Con IronBarcode, puede leer códigos de barras de archivos TIFF multipágina mediante una única llamada a un método: BarcodeReader.Read("multiPageImage.tiff"). IronBarcode procesa automáticamente cada página del archivo TIFF sin necesidad de separación manual de fotogramas ni preprocesamiento.

¿Puedo extraer códigos de barras de archivos GIF animados?

Sí, IronBarcode extrae automáticamente los códigos de barras de todos los fotogramas de los archivos GIF animados. Basta con pasar la ruta del archivo GIF al método BarcodeReader.Read, e IronBarcode analizará internamente cada fotograma para detectar y leer todos los códigos de barras presentes.

¿Tengo que dividir manualmente los cuadros antes de leer los códigos de barras de imágenes de varias páginas?

No, IronBarcode elimina la necesidad de dividir manualmente los marcos. La detección inteligente de marcos de la biblioteca analiza automáticamente la estructura de la imagen e itera internamente a través de cada marco o página, simplificando su flujo de trabajo y reduciendo los posibles puntos de fallo.

¿Qué formatos de imagen admiten la lectura de códigos de barras multipágina?

IronBarcode permite la lectura de códigos de barras multipágina, principalmente en formatos TIFF y GIF animados. Aunque la biblioteca también maneja formatos de una sola página como JPEG, PNG, BMP y SVG, TIFF y GIF están optimizados específicamente para el procesamiento multipágina con detección automática de fotogramas.

¿Cuántos pasos son necesarios para leer códigos de barras a partir de imágenes de varias páginas?

IronBarcode sólo requiere 5 sencillos pasos: descargar la biblioteca de C#, preparar las imágenes GIF y TIFF, pasarlas al método Read, aplicar opcionalmente filtros de imagen para mejorar la precisión y convertir las imágenes a formato multiframe si es necesario.

¿Por qué el formato TIFF es especialmente bueno para escanear códigos de barras de varias páginas?

El formato TIFF es ideal para escenarios de digitalización de documentos con IronBarcode porque almacena múltiples imágenes de resolución completa con varios métodos de compresión. Esta versatilidad hace que TIFF sea especialmente eficaz para manejar documentos escaneados que contienen códigos de barras en varias páginas.

Hairil Hasyimi Bin Omar
Ingeniero de Software
Como todos los grandes ingenieros, Hairil es un ávido aprendiz. Está refinando su conocimiento de C#, Python y Java, usando ese conocimiento para agregar valor a los miembros del equipo en Iron Software. Hairil se unió al equipo de Iron Software desde la Universiti Teknologi MARA en Malasia, donde se ...
Leer más
¿Listo para empezar?
Nuget Descargas 2,002,059 | Versión: 2025.12 recién lanzado