Cómo generar formatos de datos en C# con IronBarcode
IronBarcode proporciona múltiples formatos de salida de lecturas de códigos de barras, incluyendo BarcodeImage, BarcodeType, BinaryValue, coordenadas, dimensiones, números de página, orientación, texto y propiedades de valor. Estos formatos permiten procesar datos de códigos de barras mediante programación para diversos casos de uso.
En lugar de limitarse a leer el código de barras e imprimir los valores en la consola, IronBarcode ofrece mucho más. Proporciona varios formatos de salida que allanan el camino para que los usuarios procesen los resultados de la lectura. Estos formatos incluyen propiedades como imagen del código de barras, tipo de código de barras, BinaryValue, coordenadas, altura, ancho, número de página, código de barras, orientación de página, texto y valor.
Los usuarios pueden manipular estas propiedades más a fondo dentro del programa. Exploremos cómo utilizar estas propiedades y los casos de uso en los que pueden ser útiles.
Inicio rápido: Leer Valor y Tipo de Código de Barras en Una Línea
Este ejemplo muestra cómo leer un código de barras a partir de una imagen utilizando IronBarcode: una línea para cargar y, a continuación, imprimir inmediatamente el valor y el tipo del código de barras. Perfecto para empezar rápidamente. Para obtener ejemplos más completos, consulte la Guía de inicio rápido de BarCode.
Empieza a crear PDF con NuGet ahora:
Instalar IronBarcode con el gestor de paquetes NuGet
Copie y ejecute este fragmento de código.
var result = IronBarCode.BarcodeReader.Read("input.png"); Console.WriteLine($"Value: {result[0].Value}, Type: {result[0].BarcodeType}");Despliegue para probar en su entorno real
Empieza a utilizar IronBarcode en tu proyecto hoy mismo con una prueba gratuita
Flujo de trabajo mínimo (5 pasos)
- Descargue la biblioteca C# para leer códigos de barras
- Prepara el PDF y la imagen para la detección de códigos de barras
- Accede al tipo de código de barras detectado y a la imagen
- Recupera las coordenadas x e y del código de barras, así como su altura y anchura
- Lee el texto y el valor del código de barras
¿Cuáles son los formatos de salida disponibles y sus casos de uso?
BarcodeResult almacena varias propiedades útiles. Estas propiedades se enumeran a continuación:
BarcodeImageBarcodeTypeBinaryValue- Coordenadas, Altura y Ancho
PageNumberBarcodeyPageOrientation- Texto y Valor
Cada propiedad tiene una función específica en los flujos de trabajo de procesamiento de códigos de barras. Estos formatos de datos proporcionan la flexibilidad necesaria para leer códigos de barras de diversas fuentes, ya se trate de crear un sistema de gestión de inventarios, una cadena de procesamiento de documentos o una aplicación de control de calidad.
¿Cómo puedo extraer y guardar imágenes de códigos de barras?
Una vez que IronBarcode lee una imagen, los códigos de barras encontrados en ella se almacenan en BarcodeResult como la propiedad BarcodeImage de tipo AnyBitmap. La propiedad BarcodeImage almacena las imágenes de los códigos de barras encontrados. Los usuarios pueden recuperar este objeto para seguir procesando la imagen o guardarla como copia permanente. Esto proporciona eficiencia y facilidad de uso al eliminar código adicional para extraer imágenes de códigos de barras de una imagen.
El siguiente fragmento de código muestra un posible caso de uso de este formato de salida:
:path=/static-assets/barcode/content-code-examples/how-to/output-data-formats-BarcodeImage.csusing IronBarCode;
using IronSoftware.Drawing;
using System.Collections.Generic;
// Read barcode from PDF file
BarcodeResults result = BarcodeReader.ReadPdf("test.pdf");
// Create list for barcodes
List<AnyBitmap> barcodeList = new List<AnyBitmap>();
foreach (BarcodeResult barcode in result)
{
barcodeList.Add(barcode.BarcodeImage);
}
// Create multi-page TIFF
AnyBitmap.CreateMultiFrameTiff(barcodeList).SaveAs("barcodeImages.tif");Imports IronBarCode
Imports IronSoftware.Drawing
Imports System.Collections.Generic
' Read barcode from PDF file
Private result As BarcodeResults = BarcodeReader.ReadPdf("test.pdf")
' Create list for barcodes
Private barcodeList As New List(Of AnyBitmap)()
For Each barcode As BarcodeResult In result
barcodeList.Add(barcode.BarcodeImage)
Next barcode
' Create multi-page TIFF
AnyBitmap.CreateMultiFrameTiff(barcodeList).SaveAs("barcodeImages.tif")El fragmento de código anterior ilustra un caso de uso de este formato de salida. En concreto, crea una imagen TIFF de varias páginas a partir de códigos de barras detectados en un documento PDF. Primero, escaneamos o detectamos códigos de barras en el PDF de muestra. Luego, creamos una lista de AnyBitmap donde almacenamos la información de la propiedad BarcodeImage. Por último, utilizamos esta lista para generar un TIFF de varias páginas utilizando el método CreateMultiFrameTiff. Esta técnica es especialmente útil para procesar archivos GIF y TIFF multipágina.
BarcodeImage de BarcodeResult solo almacena las imágenes de los códigos de barras encontrados durante la lectura, no la imagen de entrada completa en sí.¿Cómo identificar diferentes tipos de códigos de barras mediante programación?
Esta propiedad ayuda a determinar qué tipo de código de barras está presente en la imagen o documento de entrada. Sin embargo, la limitación es que el tipo de código de barras dentro de la imagen debe ser compatible y legible por IronBarcode. Para obtener más información sobre los tipos de códigos de barras compatibles con IronBarcode, consulte este artículo. Además, explore la lista completa de formatos de código de barras admitidos para garantizar la compatibilidad con sus requisitos específicos.
El siguiente fragmento de código muestra cómo recuperar los valores del código de barras y el tipo de código de barras en una imagen imprimiendo los valores en la consola.
:path=/static-assets/barcode/content-code-examples/how-to/output-data-formats-BarcodeType.csusing IronBarCode;
using System;
// Read barcode from PNG
BarcodeResults result = BarcodeReader.Read("bc3.png");
// Output barcode type to console
foreach (BarcodeResult barcode in result)
{
Console.WriteLine("The barcode value is " + barcode.ToString() + " and the barcode type is " + barcode.BarcodeType);
}Imports IronBarCode
Imports System
' Read barcode from PNG
Private result As BarcodeResults = BarcodeReader.Read("bc3.png")
' Output barcode type to console
For Each barcode As BarcodeResult In result
Console.WriteLine("The barcode value is " & barcode.ToString() & " and the barcode type is " & barcode.BarcodeType)
Next barcodeA partir del fragmento de código anterior, realizamos la lectura de código de barras llamando al método BarcodeReader.Read() en la imagen de entrada. Esto devuelve un objeto BarcodeResults que almacena todos los BarcodeResult de leer todos los códigos de barras disponibles en la imagen. A continuación, iteramos a través del objeto BarcodeResults para recuperar el BarcodeResult y obtener el valor y el tipo del código de barras impresos en la consola. Este enfoque funciona a la perfección con varios tipos de códigos de barras, incluidos formatos especializados como Códigos de barras Código 39.
¿Cuándo debo utilizar la salida de valor binario?
Con IronBarcode, los usuarios pueden recuperar la matriz de bytes del valor del código de barras accediendo a la propiedad BinaryValue del objeto BarcodeResult. Esto permite a los usuarios manipular el valor del código de barras más a fondo dentro del programa. La salida de valores binarios es especialmente útil cuando se trabaja con datos cifrados, archivos adjuntos codificados en códigos de barras o cuando se integra con sistemas que requieren el procesamiento de datos a nivel de bytes.
El fragmento de código a continuación demuestra un caso de uso de recuperación del valor del código de barras como datos binarios:
:path=/static-assets/barcode/content-code-examples/how-to/output-data-formats-BinaryValue.csusing IronBarCode;
// Read barcode from PNG
BarcodeResults result = BarcodeReader.Read("multiple-barcodes.png");
int i = 1;
foreach (BarcodeResult barcode in result)
{
var binaryValue = barcode.BinaryValue;
var barcodeType = IronBarCode.BarcodeEncoding.QRCode;
// Create QR code
GeneratedBarcode generatedBarcode = BarcodeWriter.CreateBarcode(binaryValue, barcodeType);
// Export QR code
generatedBarcode.SaveAsPng($"qrFromBinary{i}.png");
i++;
}Imports IronBarCode
' Read barcode from PNG
Private result As BarcodeResults = BarcodeReader.Read("multiple-barcodes.png")
Private i As Integer = 1
For Each barcode As BarcodeResult In result
Dim binaryValue = barcode.BinaryValue
Dim barcodeType = IronBarCode.BarcodeEncoding.QRCode
' Create QR code
Dim generatedBarcode As GeneratedBarcode = BarcodeWriter.CreateBarcode(binaryValue, barcodeType)
' Export QR code
generatedBarcode.SaveAsPng($"qrFromBinary{i}.png")
i += 1
Next barcodeObservando el fragmento de código anterior, hemos creado un programa simple que transforma múltiples códigos de barras dentro de una imagen en archivos nuevos codificados en binario por separado. Inicialmente, escaneamos los códigos de barras en la imagen PNG de muestra. Una vez detectados estos códigos de barras, los recorremos, accedemos a la propiedad BinaryValue y la utilizamos para crear nuevos archivos binarios. Esta técnica es especialmente valiosa cuando se necesita leer varios códigos de barras y procesar sus datos binarios individualmente.
¿Cómo puedo acceder a la ubicación y las dimensiones de los códigos de barras?
Otra propiedad del objeto BarcodeResult a la que los usuarios pueden acceder es a las coordenadas del código de barras, incluidas X1, Y1, y X2, Y2, así como su Altura y Ancho dentro de un archivo o documento de imagen. Estas propiedades son útiles cuando los usuarios necesitan recuperar información sobre la ubicación y las dimensiones del código de barras. Esta información espacial es crucial para aplicaciones que requieren un posicionamiento preciso, como el procesamiento automatizado de documentos, los sistemas de control de calidad o la implementación de regiones de cultivo para optimizar el escaneado de códigos de barras.
Veamos la ubicación y las dimensiones del código de barras.
:path=/static-assets/barcode/content-code-examples/how-to/output-data-formats-height-width.csusing IronBarCode;
using IronSoftware.Drawing;
using System.Linq;
// Read barcode from PNG
BarcodeResults result = BarcodeReader.Read("multiple-barcodes.png");
AnyBitmap bitmap = AnyBitmap.FromFile("multiple-barcodes.png");
foreach (BarcodeResult barcode in result)
{
PointF[] barcodePoints = barcode.Points;
float x1 = barcodePoints.Select(b => b.X).Min();
float y1 = barcodePoints.Select(b => b.Y).Min();
Rectangle rectangle = new Rectangle((int)x1, (int)y1, (int)barcode.Width!, (int)barcode.Height!);
bitmap = bitmap.Redact(rectangle, Color.Magenta);
// Save the image
bitmap.SaveAs("redacted.png", AnyBitmap.ImageFormat.Png);
}Imports System
Imports IronBarCode
Imports IronSoftware.Drawing
Imports System.Linq
' Read barcode from PNG
Private result As BarcodeResults = BarcodeReader.Read("multiple-barcodes.png")
Private bitmap As AnyBitmap = AnyBitmap.FromFile("multiple-barcodes.png")
For Each barcode As BarcodeResult In result
Dim barcodePoints() As PointF = barcode.Points
Dim x1 As Single = barcodePoints.Select(Function(b) b.X).Min()
Dim y1 As Single = barcodePoints.Select(Function(b) b.Y).Min()
'INSTANT VB TODO TASK: There is no VB equivalent to the C# 'null-forgiving operator':
'ORIGINAL LINE: Rectangle rectangle = new Rectangle((int)x1, (int)y1, (int)barcode.Width!, (int)barcode.Height!);
Dim rectangle As New Rectangle(CInt(Math.Truncate(x1)), CInt(Math.Truncate(y1)), CInt(barcode.Width), CInt(barcode.Height))
bitmap = bitmap.Redact(rectangle, Color.Magenta)
' Save the image
bitmap.SaveAs("redacted.png", AnyBitmap.ImageFormat.Png)
Next barcode
Antes de la redacción

Después de la redacción
El fragmento de código anterior elimina varios códigos de barras de un archivo de imagen. Para lograrlo, utilizamos una combinación de dos bibliotecas, IronBarcode e IronDrawing. Para obtener el objeto BarcodeResult y extraer las propiedades de éste, primero leemos los códigos de barras disponibles en un archivo de imagen utilizando el método BarcodeReader.Read(). Al mismo tiempo, el archivo de imagen de entrada debe convertirse en un objeto AnyBitmap para aplicar el método de redacción a la imagen. Una vez que tenemos el objeto BarcodeResults, podemos aplicar un bucle e iterar a través de él para obtener los X1, Y1, Ancho y Altura de cada código de barras disponible en la imagen y utilizarlos en las propiedades CropRectangle del método AnyBitmap.Redact().
¿Por qué es importante el número de página en los documentos de varias páginas?
Los usuarios pueden recuperar el número de página en el que se encontró el código de barras. Se trata de una función útil para los usuarios que utilizan un documento de varias páginas que contiene varios códigos de barras y necesitan conocer la ubicación de los códigos de barras que se encuentran en el documento para su posterior procesamiento. Esta funcionalidad es esencial a la hora de leer códigos de barras de documentos PDF o procesar documentos por lotes en aplicaciones empresariales.
Mira el fragmento de código siguiente:
:path=/static-assets/barcode/content-code-examples/how-to/output-data-formats-page-number.csusing IronBarCode;
using System;
// Read barcode from PDF
BarcodeResults result = BarcodeReader.ReadPdf("test.pdf");
// Output page number to console
foreach (BarcodeResult barcode in result)
{
Console.WriteLine("The barcode value " + barcode.ToString() + " is found on page number " + barcode.PageNumber);
}Imports IronBarCode
Imports System
' Read barcode from PDF
Private result As BarcodeResults = BarcodeReader.ReadPdf("test.pdf")
' Output page number to console
For Each barcode As BarcodeResult In result
Console.WriteLine("The barcode value " & barcode.ToString() & " is found on page number " & barcode.PageNumber)
Next barcodeEl fragmento de código anterior muestra un caso de uso en el que los usuarios necesitan que el programa devuelva el valor de los códigos de barras encontrados en un documento PDF de varias páginas y sus respectivos números de página. El código utiliza el método BarcodeReader.ReadPdf() para leer los códigos de barras dentro de un documento PDF multipágina, que devuelve el objeto BarcodeResults que almacena cada BarcodeResult encontrado en el documento. Aplicamos un bucle e iteramos a través de cada elemento en el objeto para recuperar el valor de los códigos de barras y el número de página donde se encontraron los códigos de barras. Aparte de este caso de uso, los usuarios pueden utilizar esta propiedad para depurar si se han leído todos los códigos de barras de un documento.
¿Cómo detectar la rotación del código de barras y la orientación de la página?
Con IronBarcode, los usuarios pueden obtener información sobre la orientación del código de barras y la orientación de la página en la que se encontró el código de barras. Para extraer estos dos datos, acceda a las propiedades Rotation y PageOrientation del objeto BarcodeResult. Rotation devuelve un número entero que representa el ángulo de rotación del código de barras encontrado. Esta función funciona junto con las capacidades de corrección de la orientación de la imagen para garantizar una lectura precisa de los códigos de barras independientemente del ángulo de escaneado.
Mira el fragmento de código siguiente:
:path=/static-assets/barcode/content-code-examples/how-to/output-data-formats-orientation.csusing IronBarCode;
using System;
// Read barcode from PDF
BarcodeResults result = BarcodeReader.ReadPdf("test.pdf");
// Output page orientation and rotation to console
foreach (BarcodeResult barcode in result)
{
Console.WriteLine(barcode.Value);
Console.WriteLine(barcode.PageOrientation);
Console.WriteLine(barcode.Rotation);
}Imports IronBarCode
Imports System
' Read barcode from PDF
Private result As BarcodeResults = BarcodeReader.ReadPdf("test.pdf")
' Output page orientation and rotation to console
For Each barcode As BarcodeResult In result
Console.WriteLine(barcode.Value)
Console.WriteLine(barcode.PageOrientation)
Console.WriteLine(barcode.Rotation)
Next barcodeEl fragmento de código anterior se ejecutó con la entrada PDF de muestra adjunta para demostrar que los usuarios pueden recuperar la orientación de la página y la rotación del código de barras obteniendo el valor de BarcodeResult.PageOrientation y BarcodeResult.Rotation, respectivamente. Esta característica es útil principalmente para propósitos de depuración.
0 , 90 , 180 y 270 grados. IronBarcode no devolverá ningún valor si el código de barras tiene un valor de rotación diferente a los mencionados. PageOrientation devuelve un objeto PageOrientation, que puede ser Portrait o Landscape.¿Cuál es la diferencia entre las propiedades de texto y de valor?
Por supuesto, la propiedad principal que los usuarios querrán recuperar al usar IronBarcode es su valor y texto. Estas dos propiedades se utilizan a menudo indistintamente y devuelven el mismo valor. Además, los usuarios pueden utilizar el método BarcodeResult.ToString() para obtener el mismo resultado. Al trabajar con aplicaciones especializadas o exportar datos de códigos de barras como flujos, estas propiedades proporcionan formas flexibles de acceder al contenido del código de barras en su formato preferido.
El fragmento de código a continuación demuestra:
:path=/static-assets/barcode/content-code-examples/how-to/output-data-formats-text-value.csusing IronBarCode;
using System;
// Read barcode from PDF
BarcodeResults result = BarcodeReader.ReadPdf("barcodestamped3.pdf");
// Output text value to console
foreach (BarcodeResult barcode in result)
{
Console.WriteLine(barcode.Value);
Console.WriteLine(barcode.Text);
Console.WriteLine(barcode.ToString());
}Imports IronBarCode
Imports System
' Read barcode from PDF
Private result As BarcodeResults = BarcodeReader.ReadPdf("barcodestamped3.pdf")
' Output text value to console
For Each barcode As BarcodeResult In result
Console.WriteLine(barcode.Value)
Console.WriteLine(barcode.Text)
Console.WriteLine(barcode.ToString())
Next barcodeA partir del fragmento de código anterior, los usuarios sólo necesitan unas pocas líneas de código para leer códigos de barras en una imagen utilizando IronBarcode. Después de iterar por los BarcodeResults devueltos por el método BarcodeReader.Read(), mostramos en la consola el resultado de obtener las propiedades Value y Text, así como de llamar al método BarcodeResult.ToString() para mostrar que todos ellos devuelven el mismo valor.
En pocas palabras, IronBarcode es una API perfecta para que los usuarios realicen múltiples operaciones relacionadas con los códigos de barras, no limitadas a escribir y decodificar códigos de barras. Con varios formatos de datos de salida soportados, los usuarios pueden hacer mucho más con el objeto BarcodeResult devuelto por IronBarcode.
Preguntas Frecuentes
¿Qué formatos de salida admite la lectura de códigos de barras en C#?
IronBarcode proporciona múltiples formatos de salida, incluyendo BarcodeImage, BarcodeType, BinaryValue, coordenadas, dimensiones, números de página, orientación, texto y propiedades de valor. Estos formatos permiten el procesamiento integral de datos de códigos de barras para diversas aplicaciones .NET.
¿Cómo puedo leer el valor de un código de barras en una sola línea de código?
Con IronBarcode, puede leer un código de barras en una línea utilizando: var result = IronBarCode.BarcodeReader.Read('input.png'); Esto le da acceso inmediato al valor y tipo del código de barras a través de result[0].Value y result[0].BarcodeType.
¿Qué propiedades están disponibles en BarcodeResult?
El objeto BarcodeResult de IronBarcode contiene propiedades como BarcodeImage, BarcodeType, BinaryValue, Coordinates, Height & Width, PageNumber, Barcode, PageOrientation, Text y Value, que proporcionan datos completos para los flujos de trabajo de procesamiento de códigos de barras.
¿Puedo extraer y guardar imágenes de códigos de barras después de la lectura?
Sí, IronBarcode almacena los códigos de barras encontrados como objetos AnyBitmap en la propiedad BarcodeImage. Puede recuperar este objeto para seguir procesando la imagen o guardarla como copia permanente, eliminando la necesidad de código adicional para extraer imágenes de códigos de barras.
¿Cómo puedo acceder a las coordenadas y dimensiones de los códigos de barras?
IronBarcode proporciona datos de coordenadas que incluyen las posiciones x e y, así como las dimensiones de altura y anchura de cada código de barras detectado. Estas propiedades son accesibles a través del objeto BarcodeResult para un seguimiento preciso de la ubicación del código de barras.
¿Cuál es la diferencia entre las propiedades Text y Value?
En IronBarcode, las propiedades Text y Value contienen los datos del código de barras. Estas propiedades forman parte del objeto BarcodeResult y pueden utilizarse indistintamente para recuperar la información descodificada del código de barras.
¿Puedo determinar en qué página se ha encontrado un código de barras?
Sí, IronBarcode incluye una propiedad PageNumber en el objeto BarcodeResult, que permite identificar exactamente qué página de un documento de varias páginas o PDF contiene cada código de barras detectado.
¿Cómo puedo identificar el tipo de código de barras detectado?
La propiedad BarcodeType del objeto BarcodeResult de IronBarcode identifica el formato específico de código de barras detectado (como Código QR, Código 128, etc.), permitiendo el procesamiento específico del formato en su aplicación.






