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 de varias páginas en C

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

IronBarcode admite varias entradas de formato de imagen para la lectura, incluidos los formatos de imagen de GIF y TIFF de varias páginas y varios marcos. Esto ofrece facilidad de uso para que los usuarios simplemente utilicen la imagen sin separar manualmente los marcos o páginas de un archivo TIFF o GIF. Exploremos cómo utilizar IronBarcode para leer estos formatos de archivo.

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

Con solo una llamada de método simple, IronBarcode puede cargar un TIFF de varias páginas o un GIF animado y extraer todos los códigos de barras. Sin división de marcos o preprocesamiento manual: solo 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

Leer imágenes GIF y TIFF de múltiples fotogramas

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. Los usuarios no tienen que hacer ninguna preparación de imágenes ya que todas ellas han sido internalizadas en la biblioteca.

El ejemplo de código a continuación demuestra cómo leer archivos GIF y TIFF de varias páginas:

: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 imágenes a GIF y TIFF

Aprenda cómo convertir imágenes a TIFF y GIF de varias páginas utilizando nuestra biblioteca de código abierto, IronDrawing. Ahora, veamos el ejemplo de código a continuación sobre cómo generar una imagen GIF o TIFF de varias páginas.

: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

Del fragmento de código anterior, primero agrupamos una serie de archivos de imagen importándolos a una lista de objetos AnyBitmap. Esta lista se puede utilizar como un parámetro al llamar a los métodos AnyBitmap.CreateMultiFrameTiff y AnyBitmap.CreateMultiFrameGif para obtener los objetos TIFF de varias páginas y GIF de varias páginas, respectivamente.

Si bien tanto el GIF como el TIFF de varias páginas ofrecen una forma de agrupar imágenes en un solo archivo, existen varias diferencias entre los dos formatos, como se describe a continuación:

Aspecto GIF multipágina TIFF multipágina
Compresión Las 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 Color GIF 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.
Transparencia GIF 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ón GIF 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.

Lectura avanzada de códigos de barras

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. 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
$vbLabelText   $csharpLabel

En el fragmento de código, no solo configuramos las propiedades de BarcodeReaderOptions, sino que también aplicamos algunos filtros, específicamente el SharpenFilter y ContrastFilter. Estos filtros esencialmente ayudan a mejorar la claridad de 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 la precisión y el rendimiento de la lectura, ExpectBarcodeTypes para aumentar aún más el rendimiento, y ImageFilters para aplicar los filtros establecidos en ImageFilterCollection para lograr una lectura precisa.

Aunque configurar el objeto BarcodeReaderOptions es opcional para la mayoría de los casos de uso, es importante para que los usuarios obtengan el máximo provecho de IronBarcode al leer códigos de barras de archivos de imagen GIF y TIFF de varias páginas.

Preguntas Frecuentes

¿Cómo puedo leer códigos de barras de archivos GIF y TIFF de varias páginas en C#?

Puedes usar IronBarcode para leer códigos de barras de archivos GIF y TIFF de varias páginas utilizando el método BarcodeReader.Read. Simplemente pasa el archivo de imagen al método e IronBarcode procesará las imágenes de varias páginas o varios marcos sin problemas.

¿Cuáles son los beneficios de usar IronBarcode para leer archivos de imagen de varias páginas?

IronBarcode simplifica el proceso de lectura de archivos de imagen de varias páginas al aceptarlos directamente sin requerir la separación manual de marcos o páginas. También ofrece opciones avanzadas como filtros de imagen y BarcodeReaderOptions para mejorar la precisión de la lectura.

¿Puedo usar filtros de imagen para mejorar la precisión de la lectura de códigos de barras en IronBarcode?

Sí, puedes aplicar filtros de imagen como Grayscale, SharpenFilter y ContrastFilter en IronBarcode para mejorar la claridad de la imagen y la precisión de la lectura de códigos de barras.

¿Es posible leer múltiples códigos de barras en una sola imagen usando IronBarcode?

Sí, IronBarcode puede detectar múltiples códigos de barras en una sola imagen activando la opción ExpectMultipleBarcodes dentro de la clase BarcodeReaderOptions.

¿Cómo convierto imágenes a TIFF o GIF de varias páginas en C#?

Puedes convertir imágenes a formatos TIFF o GIF de varias páginas usando la biblioteca IronDrawing. Importa imágenes en una lista de objetos AnyBitmap y usa los métodos AnyBitmap.CreateMultiFrameTiff o AnyBitmap.CreateMultiFrameGif.

¿Cuál es la diferencia entre los formatos GIF y TIFF de varias páginas?

Los GIFs de varias páginas utilizan compresión sin pérdida y admiten animaciones simples pero están limitados a 256 colores. Los TIFFs de varias páginas admiten varios métodos de compresión, mayores profundidades de color y opciones de transparencia, pero no están diseñados para animaciones.

¿Necesito preprocesar las imágenes antes de leer códigos de barras con IronBarcode?

No se requiere preprocesamiento. IronBarcode puede manejar y leer archivos de imagen de varias páginas directamente sin necesidad de ninguna preparación manual.

¿Cómo se pueden aplicar técnicas avanzadas de lectura de códigos de barras utilizando IronBarcode?

La lectura avanzada de códigos de barras en IronBarcode se puede lograr configurando la clase BarcodeReaderOptions. Se pueden establecer opciones como ExpectMultipleBarcodes, Speed y ImageFilters para optimizar el rendimiento y la precisión.

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 1,979,979 | Version: 2025.11 recién lanzado