HOWTO · Csharp
Leer código de barras en C#
Este artículo explica cómo leer datos de códigos de barras desde un archivo de imagen en C# mediante un paquete de terceros.
En esta página
Este tutorial explica cómo leer datos de códigos de barras desde un archivo de imagen en C#. Presenta un programa completo que utiliza un paquete de terceros para encontrar uno o varios códigos de barras e imprimir su simbología y el texto decodificado. El flujo mostrado lee un archivo de imagen local; si el código de barras llega desde otra fuente, adapte por separado el paso de entrada.
Leer código de barras en C#
Puede leer imágenes de códigos de barras en C# con el paquete de ensamblado Aspose.BarCode. Cree un proyecto de consola en Visual Studio, instale el paquete desde NuGet.org y coloque barcode.png en el directorio del proyecto para que el ejemplo pueda abrirlo por nombre. El paquete proporciona la API de reconocimiento; la imagen sigue siendo la entrada de su aplicación.
La API de reconocimiento se encuentra en el espacio de nombres Aspose.BarCode.BarCodeRecognition. Cree un BarCodeReader, llame a su método ReadBarCodes() e inspeccione cada BarCodeResult devuelto. Cada resultado expone CodeType para la simbología y CodeText para el valor decodificado, por lo que el mismo bucle puede procesar varios códigos de barras en una imagen.
El ejemplo siguiente utiliza el constructor que recibe un nombre de archivo. Mantiene visibles las responsabilidades de entrada y salida y libera el lector después de usarlo. Este ejemplo, que depende de la biblioteca, no se presenta aquí como evidencia de ejecución: instale el paquete y proporcione barcode.png antes de ejecutarlo. Si no se puede abrir el archivo o la biblioteca no puede decodificarlo, el bloque try/catch escribe el mensaje de la biblioteca en lugar de terminar sin contexto.
-
Cree una aplicación de consola de C# en Visual Studio.
-
Vaya a la pestaña
"Proyecto"y seleccione"Administrar paquetes NuGet".
-
Busque el paquete
Aspose.BarCodeen NuGet.org e instálelo.
Ahora puede importar el espacio de nombres
Aspose.BarCode.BarCodeRecognitionen el código para utilizar la funcionalidad de reconocimiento de códigos de barras. -
Copie el siguiente fragmento de código en el archivo
program.csusing System; using Aspose.BarCode; using Aspose.BarCode.BarCodeRecognition; namespace BarcodeScanner { class Program { static void Main(string[] args) { try { // The file is in the project directory. using (BarCodeReader barCodeReader = new BarCodeReader("barcode.png")) { foreach (BarCodeResult output in barCodeReader.ReadBarCodes()) { // Read the barcode Console.WriteLine("Symbology Type: " + output.CodeType); Console.WriteLine("CodeText: " + output.CodeText); } } } catch (Exception ex) { Console.WriteLine(ex.Message); } } } }Este código lee
barcode.pngdesde el directorio del proyecto. El bucleforeachprocesa cadaBarCodeResultque devuelve la imagen. Para cada resultado, imprime la simbología deCodeTypey el valor decodificado deCodeText. El bloquetry/catchevita que un error de entrada o de la biblioteca termine el ejemplo sin mostrar un mensaje.La clase
BarCodeReadertiene constructores sobrecargados, y este ejemplo utiliza deliberadamente el constructor que recibe un nombre de archivo. Otras formas de entrada dependen de la versión de la biblioteca y quedan fuera del flujo mostrado, por lo que este artículo no las presenta como código intercambiable.
La siguiente imagen es la entrada utilizada por la ilustración del artículo.
El lector informa los valores decodificados en la salida de la aplicación. La captura suministrada muestra el resultado para esta entrada.
Para ver rápidamente la forma de la salida, este ejemplo de consola autónomo utiliza un objeto de resultado local e imprime los mismos dos campos que el ejemplo de la biblioteca. Este fragmento es ilustrativo y no se presenta como evidencia de ejecución.
using System;
class Program
{
static void Main()
{
var result = new BarcodeResult("Code128", "123456789");
Console.WriteLine("Symbology Type: " + result.CodeType);
Console.WriteLine("CodeText: " + result.CodeText);
}
private sealed class BarcodeResult
{
public BarcodeResult(string codeType, string codeText)
{
CodeType = codeType;
CodeText = codeText;
}
public string CodeType { get; }
public string CodeText { get; }
}
}
Symbology Type: Code128
CodeText: 123456789
El lector de Aspose.BarCode es una herramienta de pago y se necesita una licencia para disponer de una funcionalidad sin restricciones.