USO DE IRONBARCODE

Cómo utilizar escáneres de códigos de barras en aplicaciones C# Windows

Actualizado 4 de mayo, 2022
Compartir:

Este tutorial demostrará cómo escanear códigos QR y códigos de barras en Aplicaciones de Consola C# y Aplicaciones .NET Windows Forms, utilizando la librería IronBarcode como ejemplo.

Utilizando la biblioteca IronBarcode, se pueden escanear y leer simultáneamente varios códigos de barras, y también puede escanear con éxito imágenes imperfectas. Aclaremos primero qué es un lector de códigos de barras.

¿Qué es un escáner de códigos de barras?

Un código de barras es una imagen cuadrada o rectangular formada por una serie de líneas negras paralelas y espacios blancos de anchura variable. Un escáner de códigos de barras o lector de códigos de barras es un dispositivo que puede leer códigos de barras impresos, descodificar los datos contenidos en el código de barras y enviarlos a un ordenador.

Los siguientes pasos le mostrarán cómo crear un escáner de código de barras con la ayuda de la librería IronBarcode.

Cómo leer códigos de barras en C#

  • Crear un proyecto de aplicación .NET Windows Forms en Microsoft Visual Studio
  • Instalar la biblioteca de códigos de barras
  • Lee cualquier código de barras o QR
  • Lea varios códigos de barras o códigos QR de una sola vez
  • Permitir que IronBarcode lea a partir de escaneados y fotos imperfectos

1. Crear una aplicación Windows Forms en Microsoft Visual Studio

Abra Visual Studio > Haga clic en Crear nuevo proyecto > Seleccione Plantilla de aplicación Windows Forms > Pulse Siguiente > Asigne un nombre al proyecto > Pulse Siguiente > Seleccione su .NET Framework de destino > Haga clic en el botón Crear.

Después de crear el proyecto, diseñe el formulario de la siguiente manera desde la caja de herramientas de Visual Studio: Controles PictureBox, Label, TextBox y Button.

Cómo utilizar escáneres de código de barras en C# Windows Application, Figura 1: Escáner de código de barras

**Escáner de código de barras

2. Instale la biblioteca .NET de códigos de barras en C#

La Biblioteca de códigos de barras puede instalarse utilizando uno de los tres métodos siguientes:

1. Consola del gestor de paquetes

Escriba el siguiente comando en la consola del gestor de paquetes. Descargará e instalará el paquete por ti.

Install-Package BarCode

2. Solución NuGet Packages Manager

También puede instalar la biblioteca de códigos de barras mediante la solución de paquetes NuGet. Sólo tienes que seguir estos pasos:

Haga clic en Herramientas > Administrador de paquetes NuGet > Administrar paquetes NuGet para la solución.

Esto abrirá NuGet Package Manager para usted. Haga clic en Examinar y busque Código de barras; a continuación, instale la biblioteca de clases.

3. Descargar desde el enlace

Como alternativa, el IronBarCode.Dll puede descargarse y añadirse a su proyecto como referencia.

Tras la descarga, añada las siguientes referencias a su proyecto de lector de códigos de barras.

using IronBarCode;
using IronBarCode;
Imports IronBarCode
VB   C#

3. Leer cualquier código de barras o código QR

Leer un código de barras o un código QR en .NET es increíblemente fácil utilizando la biblioteca IronBarcode con Lector de códigos de barras .NET.

Escáner de códigos de barras

Busque en su proyecto la imagen que desea leer. Se abrirá en PictureBox; ahora haga clic en "escanear código". El texto aparecerá en el cuadro de texto.

Este es el código del botón "Examinar" para abrir una imagen:

//  abrir diálogo de archivo   
OpenFileDialog open = new OpenFileDialog();  
//  filtros de imagen  
open.Filter = "Image Files(*.jpg; *.png; *.jpeg; *.gif; *.bmp)
*.jpg;*.png;*.jpeg;*.gif;*.bmp";
if (open.ShowDialog() == DialogResult.OK) {  
    //  mostrar imagen en cuadro de imagen
    pictureBox1.Image = new Bitmap(open.FileName); 
    //  almacenar la ruta del archivo de imagen en el miembro de datos de la clase. Inicializar como cadena ImageFileName;
    ImageFileName = open.FileName; 
}
//  abrir diálogo de archivo   
OpenFileDialog open = new OpenFileDialog();  
//  filtros de imagen  
open.Filter = "Image Files(*.jpg; *.png; *.jpeg; *.gif; *.bmp)
*.jpg;*.png;*.jpeg;*.gif;*.bmp";
if (open.ShowDialog() == DialogResult.OK) {  
    //  mostrar imagen en cuadro de imagen
    pictureBox1.Image = new Bitmap(open.FileName); 
    //  almacenar la ruta del archivo de imagen en el miembro de datos de la clase. Inicializar como cadena ImageFileName;
    ImageFileName = open.FileName; 
}
'  abrir diálogo de archivo   
Dim open As New OpenFileDialog()
'  filtros de imagen  
open.Filter = "Image Files(*.jpg; *.png; *.jpeg; *.gif; *.bmp) *.jpg;*.png;*.jpeg;*.gif;*.bmp"
If open.ShowDialog() = DialogResult.OK Then
	'  mostrar imagen en cuadro de imagen
	pictureBox1.Image = New Bitmap(open.FileName)
	'  almacenar la ruta del archivo de imagen en el miembro de datos de la clase. Inicializar como cadena ImageFileName;
	ImageFileName = open.FileName
End If
VB   C#

El código del botón "escanear código":

BarcodeResult Result = BarcodeReader.Read(ImageFileName);
textBox1.Text = Result.Text;
BarcodeResult Result = BarcodeReader.Read(ImageFileName);
textBox1.Text = Result.Text;
Dim Result As BarcodeResult = BarcodeReader.Read(ImageFileName)
textBox1.Text = Result.Text
VB   C#

El lector de códigos de barras muestra los datos del código de barras en el cuadro de texto de la siguiente manera:

Cómo utilizar escáneres de códigos de barras en C# Aplicación Windows, Figura 2: Imagen de código de barras a escanear con C#

Imagen de código de barras para escanear con C#

Escáner de códigos QR

En esta sección, la librería IronBarcode maneja eficazmente situaciones del mundo real que implican códigos QR sesgados. Aunque el código QR de ángulo oblicuo puede ser manejado y leído por el Leer sin embargo, puede tardar más tiempo en resolverse. La biblioteca IronBarcode proporciona una forma personalizada de utilizar BarcodeReaderOptions (Opciones del lector de códigos de barras) como parámetro adicional para tratar este tipo de entrada de imágenes. El código es el siguiente:

//  Elija los filtros que deben aplicarse (por orden);
var filtersToApply = new ImageFilterCollection() {
    new SharpenFilter(),
    new InvertFilter(),
    new ContrastFilter(),
    new BrightnessFilter(),
    new AdaptiveThresholdFilter(),
    new BinaryThresholdFilter()
};

BarcodeReaderOptions myOptionsExample = new BarcodeReaderOptions()
{
    //  Establecer filtros elegidos en BarcodeReaderOptions:
    ImageFilters = filtersToApply,

    ExpectBarcodeTypes = BarcodeEncoding.QRCode 
 BarcodeEncoding.Code128,
};
BarcodeResult Result = BarcodeReader.Read(ImageFileName, myOptionsExample);
textBox1.Text = Result.Text;
//  Elija los filtros que deben aplicarse (por orden);
var filtersToApply = new ImageFilterCollection() {
    new SharpenFilter(),
    new InvertFilter(),
    new ContrastFilter(),
    new BrightnessFilter(),
    new AdaptiveThresholdFilter(),
    new BinaryThresholdFilter()
};

BarcodeReaderOptions myOptionsExample = new BarcodeReaderOptions()
{
    //  Establecer filtros elegidos en BarcodeReaderOptions:
    ImageFilters = filtersToApply,

    ExpectBarcodeTypes = BarcodeEncoding.QRCode 
 BarcodeEncoding.Code128,
};
BarcodeResult Result = BarcodeReader.Read(ImageFileName, myOptionsExample);
textBox1.Text = Result.Text;
'  Elija los filtros que deben aplicarse (por orden);
Dim filtersToApply = New ImageFilterCollection() From {
	New SharpenFilter(),
	New InvertFilter(),
	New ContrastFilter(),
	New BrightnessFilter(),
	New AdaptiveThresholdFilter(),
	New BinaryThresholdFilter()
}

Dim myOptionsExample As New BarcodeReaderOptions() With {
	.ImageFilters = filtersToApply,
	.ExpectBarcodeTypes = BarcodeEncoding.QRCode BarcodeEncoding.Code128
}
Dim Result As BarcodeResult = BarcodeReader.Read(ImageFileName, myOptionsExample)
textBox1.Text = Result.Text
VB   C#

La salida será la siguiente después de abrir la imagen del código QR sesgado:

Cómo utilizar escáneres de códigos de barras en C# Windows Application, Figura 4: Imagen QrCode sesgada

Imagen QrCode torcida

Lectura de varios códigos de barras en un solo escaneado

Documentos PDF

Las imágenes de códigos de barras pueden escanearse desde un archivo PDF y cada resultado puede mostrarse adecuadamente según se desee. El siguiente código de ejemplo permite leer varios códigos de barras de un archivo PDF.

//  Se pueden escanear varios códigos de barras a partir de un único documento o imagen.  También puede utilizarse un documento PDF como entrada 
imagePagedBarcodeResult [] PDFResults = BarcodeReader.ReadPdf("MultipleBarcodes.pdf");
//  Trabajar con los resultados
foreach (var PageResult in PDFResults) { 
    string Value = PageResult.Value;
    int PageNum = PageResult.PageNumber;
    System.Drawing.Bitmap Img = PageResult.BarcodeImage;
    BarcodeEncoding BarcodeType = PageResult.BarcodeType;
    byte [] Binary = PageResult.BinaryValue;
    Console.WriteLine(PageResult.Value + " on page " + PageNum);
}
//  Se pueden escanear varios códigos de barras a partir de un único documento o imagen.  También puede utilizarse un documento PDF como entrada 
imagePagedBarcodeResult [] PDFResults = BarcodeReader.ReadPdf("MultipleBarcodes.pdf");
//  Trabajar con los resultados
foreach (var PageResult in PDFResults) { 
    string Value = PageResult.Value;
    int PageNum = PageResult.PageNumber;
    System.Drawing.Bitmap Img = PageResult.BarcodeImage;
    BarcodeEncoding BarcodeType = PageResult.BarcodeType;
    byte [] Binary = PageResult.BinaryValue;
    Console.WriteLine(PageResult.Value + " on page " + PageNum);
}
'  Se pueden escanear varios códigos de barras a partir de un único documento o imagen.  También puede utilizarse un documento PDF como entrada 
Dim PDFResults() As imagePagedBarcodeResult = BarcodeReader.ReadPdf("MultipleBarcodes.pdf")
'  Trabajar con los resultados
For Each PageResult In PDFResults
	Dim Value As String = PageResult.Value
	Dim PageNum As Integer = PageResult.PageNumber
	Dim Img As System.Drawing.Bitmap = PageResult.BarcodeImage
	Dim BarcodeType As BarcodeEncoding = PageResult.BarcodeType
	Dim Binary() As Byte = PageResult.BinaryValue
	Console.WriteLine(PageResult.Value & " on page " & PageNum)
Next PageResult
VB   C#

Código de barras y código QR presentes en archivos PDF:

Cómo utilizar escáneres de códigos de barras en C# Aplicación Windows, Figura 3: C# - Lectura de códigos de barras de un PDF resultados

C# - Lectura de códigos de barras de un PDF

Lectura de códigos de barras a partir de imágenes imperfectas

En casos de uso en el mundo real, los códigos de barras se encuentran a menudo con imperfecciones en imágenes, escaneados, miniaturas o fotografías, y pueden contener ruido digital o estar sesgados. Esta sección muestra cómo leer datos de códigos de barras a partir de miniaturas.

Miniaturas

La librería IronBarcode utiliza el Generador de códigos de barras C# que es capaz incluso de leer una miniatura corrupta de un código de barras.

How to Use Barcode Scanners in C# Windows Application, Figura 5: Corrección automática del tamaño de la miniatura del código de barras. Archivo legible mediante IronBarcode en C#

Corrección automática del tamaño de las miniaturas de los códigos de barras. Archivo legible mediante IronBarcode en C#

Detecta automáticamente las imágenes de códigos de barras que son demasiado pequeñas para representar razonablemente un código de barras real y, a continuación, las amplía y limpia de todo el ruido digital asociado a las miniaturas, lo que permite que vuelvan a ser legibles.

//  IronBarCode detecta automáticamente las imágenes de códigos de barras pequeñas o "en miniatura" y las corrige siempre que sea posible, aunque tengan mucho ruido digital.
BarcodeResult SmallResult = BarcodeReader.Read("ThumbnailOfBarcode.gif");
//  IronBarCode detecta automáticamente las imágenes de códigos de barras pequeñas o "en miniatura" y las corrige siempre que sea posible, aunque tengan mucho ruido digital.
BarcodeResult SmallResult = BarcodeReader.Read("ThumbnailOfBarcode.gif");
'  IronBarCode detecta automáticamente las imágenes de códigos de barras pequeñas o "en miniatura" y las corrige siempre que sea posible, aunque tengan mucho ruido digital.
Dim SmallResult As BarcodeResult = BarcodeReader.Read("ThumbnailOfBarcode.gif")
VB   C#

Resumen

IronBarcode es una biblioteca de software .NET versátil y Generador de códigos QR C# para escanear y leer una amplia gama de formatos de imagen de códigos de barras, y puede hacerlo tanto si estos códigos de barras son capturas de pantalla perfectas como si son de hecho fotografías, escaneos u otros. imágenes imperfectas del mundo real. Además, IronBarcode ofrece una amplia gama de opciones de personalización para mejorar la velocidad de lectura de códigos de barras, tales como regiones de cultivo o multihilo y la precisión del modelo ML. Visite la página de los documentos oficiales para obtener más información sobre IronBarcode.

Actualmente, si compra la Iron Suite completa puede obtener cinco bibliotecas por el precio de sólo dos.

< ANTERIOR
Generador de código de barras .NET Tutorial
SIGUIENTE >
Cómo generar códigos de barras en ASP.NET usando C#

¿Listo para empezar? Versión: 2024.7 recién publicada

Descarga gratuita de NuGet Descargas totales: 1,069,531 Ver licencias >
123