Pruebe en producción sin marcas de agua.
Funciona donde lo necesite.
Obtén 30 días de producto totalmente funcional.
Ténlo en funcionamiento en minutos.
Acceso completo a nuestro equipo de asistencia técnica durante la prueba del producto
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.
Un código de barras es una imagen cuadrada o rectangular que consiste en una serie de líneas negras paralelas y espacios blancos de anchos variables. 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.
Abra Visual Studio > Haga clic en Crear nuevo proyecto > Seleccione Plantilla de aplicación de formularios de Windows > Presione Siguiente > Nombre el proyecto > Presione Siguiente > Seleccione su .NET Framework objetivo > 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ódigo de barras
La Biblioteca de códigos de barras puede instalarse utilizando uno de los tres métodos siguientes:
Escriba el siguiente comando en la consola del gestor de paquetes. Descargará e instalará el paquete por ti.
Install-Package BarCode
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.
Como alternativa, el IronBarCode.Dll se puede descargar y añadir 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
Leer un código de barras o un código QR en .NET es increíblemente fácil usando la biblioteca IronBarcode con .NET Barcode Reader.
Busque en su proyecto la imagen que desea leer. Lo 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
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
El lector de códigos de barras muestra los datos del código de barras en el cuadro de texto de la siguiente manera:
Imagen de código de barras para escanear con C#
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 en ángulo sesgado puede ser manejado y leído por el método Read
, sin embargo, puede tardar más tiempo en resolverse. La biblioteca IronBarcode proporciona una forma personalizada de usar BarcodeReaderOptions
como un parámetro adicional para manejar dicha entrada de imagen. 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
La salida será la siguiente después de abrir la imagen del código QR sesgado:
Imagen de código QR inclinado
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
Código de barras y código QR presentes en archivos PDF:
C# - Resultados de la lectura de códigos de barras desde un PDF
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.
La biblioteca IronBarcode utiliza el Generador de Códigos de Barras C#, que incluso es capaz de leer una miniatura dañada de un código de barras.
Corrección automática del tamaño de miniatura del código de barras. Archivo legible utilizando 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")
IronBarcode es una biblioteca de software .NET versátil y un Generador de Códigos QR en C# para escanear y leer una amplia variedad de formatos de imagen de códigos de barras, y puede hacerlo independientemente de si estos códigos de barras son capturas de pantalla perfectas o son de hecho fotografías, escaneos u otras imágenes del mundo real imperfectas. Además, IronBarcode ofrece una amplia gama de opciones de personalización para mejorar la velocidad de lectura de códigos de barras, como regiones de recorte o multihilo, y la precisión del modelo de ML. Visita la página oficial de documentos para obtener más información sobre IronBarcode.
Actualmente, si compras la suite completa de Iron Suite, puedes obtener cinco bibliotecas por el precio de solo dos.