
Uso de escáneres de códigos de barras en aplicaciones C#
Este tutorial demostrará cómo escanear códigos QR y códigos de barras en Aplicaciones de Consola C# y Aplicaciones de Windows Forms de .NET, usando la biblioteca IronBarcode como ejemplo.
Usando la biblioteca IronBarcode, se pueden escanear y leer múltiples códigos de barras simultáneamente, y también se pueden escanear imágenes imperfectas con éxito. Primero aclaremos qué es un lector de códigos de barras.
¿Qué es un escáner de código de barras?
Un código de barras es una imagen cuadrada o rectangular que consta de una serie de líneas negras paralelas y espacios blancos de diferentes anchos. Un lector de códigos de barras o escáner de códigos de barras es un dispositivo que puede leer códigos de barras impresos, decodificar los datos contenidos en el código de barras y enviar los datos a una computadora.
Los siguientes pasos presentarán cómo crear un escáner de códigos de barras con la ayuda de la Biblioteca IronBarcode.
Cómo leer códigos de barras en C#
- Crear un proyecto de Aplicación Windows Forms .NET en Microsoft Visual Studio
- Instalar la biblioteca de códigos de barras
- Leer cualquier código de barras o QR
- Leer múltiples códigos de barras o códigos QR en un solo escaneo
- Permitir que IronBarcode lea escaneos imperfectos y fotos
1. Cree una aplicación de Windows Forms en Microsoft Visual Studio
Abra Visual Studio > Haga clic en Crear Nuevo Proyecto > Seleccione Plantilla de Aplicación Windows Forms > Presione Siguiente > Nombre el Proyecto > Presione Siguiente > Seleccione su marco .NET 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.
Escáner de Códigos de Barras
2. Instalar la biblioteca Barcode .NET en C#
La Biblioteca de Código de Barras se puede instalar utilizando uno de los siguientes tres métodos:
1. Consola del administrador de paquetes
Escribe el siguiente comando en la Consola del Administrador de Paquetes. Descargará e instalará el paquete por ti.
2. Solución de administrador de paquetes NuGet
También puede instalar la Biblioteca de Código de Barras usando la Solución del Paquete NuGet. Simplemente sigue estos pasos:
Haz clic en Herramientas > Administrador de Paquetes NuGet > Administrar Paquetes NuGet para la Solución.
Esto abrirá el Administrador de Paquetes NuGet para ti. Haga clic en Navegar y busque Código de Barras, luego instale la biblioteca de clases.
3. Descargar desde el enlace
Como alternativa, el IronBarCode.Dll se puede descargar y agregar a su proyecto como referencia.
Después de descargar, agregue las siguientes referencias a su proyecto de lector de códigos de barras.
using IronBarCode;Imports IronBarCode3. Lea cualquier código de barras o código QR
Leer un código de barras o código QR en .NET es increíblemente fácil usando la biblioteca IronBarcode con .NET Barcode Reader.
Escáner de código de barras
En su proyecto, busque la imagen que desea leer. Se abrirá en PictureBox; ahora haga clic en "escanear código". El texto aparecerá en el cuadro de texto.
Aquí está el código para el botón "navegar" 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 PictureBox
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
Dim open As New OpenFileDialog()
' Image filters
open.Filter = "Image Files(*.jpg; *.png; *.jpeg; *.gif; *.bmp)|*.jpg;*.png;*.jpeg;*.gif;*.bmp"
If open.ShowDialog() = DialogResult.OK Then
' Display image in PictureBox
pictureBox1.Image = New Bitmap(open.FileName)
' Store image file path in class data member. Initialize it as string ImageFileName;
ImageFileName = open.FileName
End IfEl código para el botón "escanear código":
// Read the barcode from the image file path
BarcodeResult Result = BarcodeReader.Read(ImageFileName);
// Display the decoded text in TextBox
textBox1.Text = Result.Text;' Read the barcode from the image file path
Dim Result As BarcodeResult = BarcodeReader.Read(ImageFileName)
' Display the decoded text in TextBox
textBox1.Text = Result.TextEl escáner de códigos de barras muestra los datos en el cuadro de texto así:
Imagen de Código de Barras a Escanear con C#
Escáner de código QR
En esta sección, la Biblioteca IronBarcode maneja efectivamente situaciones del mundo real que involucran códigos QR inclinados. Aunque el código QR en un ángulo sesgado puede ser manejado y leído por el Read método, puede, no obstante, tomar más tiempo en resolverse. La biblioteca IronBarcode proporciona una manera personalizada de usar BarcodeReaderOptions como un parámetro adicional para manejar tal entrada de imagen. El código es el siguiente:
// Define a collection of image filters to apply
var filtersToApply = new ImageFilterCollection() {
new SharpenFilter(),
new InvertFilter(),
new ContrastFilter(),
new BrightnessFilter(),
new AdaptiveThresholdFilter(),
new BinaryThresholdFilter()
};
// Configure barcode reader options with specified filters
BarcodeReaderOptions myOptionsExample = new BarcodeReaderOptions() {
ImageFilters = filtersToApply,
ExpectBarcodeTypes = BarcodeEncoding.QRCode | BarcodeEncoding.Code128,
};
// Read the barcode/QR code with custom options and display result
BarcodeResult Result = BarcodeReader.Read(ImageFileName, myOptionsExample);
textBox1.Text = Result.Text;' Define a collection of image filters to apply
Dim filtersToApply = New ImageFilterCollection() From {
New SharpenFilter(),
New InvertFilter(),
New ContrastFilter(),
New BrightnessFilter(),
New AdaptiveThresholdFilter(),
New BinaryThresholdFilter()
}
' Configure barcode reader options with specified filters
Dim myOptionsExample As New BarcodeReaderOptions() With {
.ImageFilters = filtersToApply,
.ExpectBarcodeTypes = BarcodeEncoding.QRCode Or BarcodeEncoding.Code128
}
' Read the barcode/QR code with custom options and display result
Dim Result As BarcodeResult = BarcodeReader.Read(ImageFileName, myOptionsExample)
textBox1.Text = Result.TextLa salida será la siguiente después de abrir la imagen del código QR inclinado:
Imagen de Código Qr Inclinada
Lectura de múltiples códigos de barras en un solo escaneo
Documentos PDF
Las imágenes de código de barras se pueden escanear desde un archivo PDF, y cada resultado se puede mostrar de manera adecuada como se desee. El siguiente código de ejemplo le permite leer múltiples códigos de barras desde un archivo PDF.
// Scan for multiple barcodes within a PDF document
BarcodeResult[] PDFResults = BarcodeReader.ReadPdf("MultipleBarcodes.pdf");
// Work with the results found
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);
}' Scan for multiple barcodes within a PDF document
Dim PDFResults() As BarcodeResult = BarcodeReader.ReadPdf("MultipleBarcodes.pdf")
' Work with the results found
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 PageResultCódigos de barras y códigos QR presentes en archivos PDF:
C# - Leyendo Códigos de Barras de un PDF resultados
Lectura de códigos de barras a partir de imágenes imperfectas
En casos de uso del mundo real, los códigos de barras se encuentran a menudo con imperfecciones en imágenes, escaneos, miniaturas o fotografías, y pueden contener ruido digital o estar inclinados. Esta sección demuestra cómo leer datos de código de barras desde miniaturas.
Miniaturas
La Biblioteca IronBarcode utiliza el Generador de Código de Barras C#, que incluso es capaz de leer una miniatura dañada de un código de barras.
Corrección automática de tamaño de miniatura de código de barras.Archivo legible usando IronBarcode en C#
Corrección automática del tamaño de las miniaturas de código de barras. Archivo legible usando IronBarcode en C#
IronBarcode también permite personalizar la velocidad de lectura de códigos de barras con regiones de recorte, multihilo, y precisión del modelo de ML.
// 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")Resumen
Visite la página de documentos oficiales para obtener más información sobre IronBarcode. Actualmente, si compras el Iron Suite completo, puedes obtener cinco bibliotecas por el precio de solo dos. Visita la página de documentos oficiales para obtener más información sobre IronBarcode.
Actualmente, si compras la Iron Suite completa , puedes obtener cinco bibliotecas por el precio de solo dos.

Curtis Chau tiene una licenciatura en Ciencias de la Computación (Carleton University) y se especializa en el desarrollo front-end con experiencia en Node.js, TypeScript, JavaScript y React. Apasionado por crear interfaces de usuario intuitivas y estéticamente agradables, disfruta trabajando con frameworks modernos y creando manuales bien estructurados y visualmente atractivos.
Artículos Relacionados

