USO DE IRONBARCODE

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

Actualizado 20 de enero, 2024
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, elIronBarCode.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 conLector 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:

// open file dialog   
OpenFileDialog open = new OpenFileDialog();  
// image filters  
open.Filter = "Image Files(*.jpg; *.png; *.jpeg; *.gif; *.bmp)
*.jpg;*.png;*.jpeg;*.gif;*.bmp";
if (open.ShowDialog() == DialogResult.OK) {  
    // display image in picture box
    pictureBox1.Image = new Bitmap(open.FileName); 
    // store image file path in class data member. Initialize it as string ImageFileName;
    ImageFileName = open.FileName; 
}
// open file dialog   
OpenFileDialog open = new OpenFileDialog();  
// image filters  
open.Filter = "Image Files(*.jpg; *.png; *.jpeg; *.gif; *.bmp)
*.jpg;*.png;*.jpeg;*.gif;*.bmp";
if (open.ShowDialog() == DialogResult.OK) {  
    // display image in picture box
    pictureBox1.Image = new Bitmap(open.FileName); 
    // store image file path in class data member. Initialize it as string ImageFileName;
    ImageFileName = open.FileName; 
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
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 elLeer sin embargo, puede tardar más tiempo en resolverse. La biblioteca IronBarcode proporciona una forma personalizada de utilizarBarcodeReaderOptions (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:

// Choose which filters are to be applied (in order);
var filtersToApply = new ImageFilterCollection() {
    new SharpenFilter(),
    new InvertFilter(),
    new ContrastFilter(),
    new BrightnessFilter(),
    new AdaptiveThresholdFilter(),
    new BinaryThresholdFilter()
};

BarcodeReaderOptions myOptionsExample = new BarcodeReaderOptions()
{
    // Set chosen filters in BarcodeReaderOptions:
    ImageFilters = filtersToApply,

    ExpectBarcodeTypes = BarcodeEncoding.QRCode 
 BarcodeEncoding.Code128,
};
BarcodeResult Result = BarcodeReader.Read(ImageFileName, myOptionsExample);
textBox1.Text = Result.Text;
// Choose which filters are to be applied (in order);
var filtersToApply = new ImageFilterCollection() {
    new SharpenFilter(),
    new InvertFilter(),
    new ContrastFilter(),
    new BrightnessFilter(),
    new AdaptiveThresholdFilter(),
    new BinaryThresholdFilter()
};

BarcodeReaderOptions myOptionsExample = new BarcodeReaderOptions()
{
    // Set chosen filters in BarcodeReaderOptions:
    ImageFilters = filtersToApply,

    ExpectBarcodeTypes = BarcodeEncoding.QRCode 
 BarcodeEncoding.Code128,
};
BarcodeResult Result = BarcodeReader.Read(ImageFileName, myOptionsExample);
textBox1.Text = Result.Text;
IRON VB CONVERTER ERROR developers@ironsoftware.com
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.

// Multiple barcodes may be scanned up from a single document or image.  A PDF document may also used as the input 
imagePagedBarcodeResult [] PDFResults = BarcodeReader.ReadPdf("MultipleBarcodes.pdf");
// Work with the results
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);
}
// Multiple barcodes may be scanned up from a single document or image.  A PDF document may also used as the input 
imagePagedBarcodeResult [] PDFResults = BarcodeReader.ReadPdf("MultipleBarcodes.pdf");
// Work with the results
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);
}
' Multiple barcodes may be scanned up from a single document or image.  A PDF document may also used as the input 
Dim PDFResults() As imagePagedBarcodeResult = BarcodeReader.ReadPdf("MultipleBarcodes.pdf")
' Work with the results
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 elGenerador 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.

// Small or 'Thumbnail' barcode images are automatically detected by IronBarCode and corrected for wherever possible even if they have much digital noise.
BarcodeResult SmallResult = BarcodeReader.Read("ThumbnailOfBarcode.gif");
// Small or 'Thumbnail' barcode images are automatically detected by IronBarCode and corrected for wherever possible even if they have much digital noise.
BarcodeResult SmallResult = BarcodeReader.Read("ThumbnailOfBarcode.gif");
' Small or 'Thumbnail' barcode images are automatically detected by IronBarCode and corrected for wherever possible even if they have much digital noise.
Dim SmallResult As BarcodeResult = BarcodeReader.Read("ThumbnailOfBarcode.gif")
VB   C#

Resumen

IronBarcode es una biblioteca de software .NET versátil yGenerador 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 comoregiones de cultivo omultihiloyla precisión del modelo ML. Visitela página de los documentos oficiales para obtener más información sobre IronBarcode.

Actualmente, si comprala Iron Suite completapuede 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.12 acaba de salir

Descarga gratuita de NuGet Descargas totales: 1,315,778 Ver licencias >