Leer código de barras de la imagen en C#

¿Está buscando una manera de leer códigos de barras o códigos QR de imágenes mediante programación? ¿Es usted un desarrollador y necesita crear su propia aplicación de lector de código de barras? Has venido al lugar correcto. Los códigos de barras son cruciales para el seguimiento preciso del inventario y la entrega de productos desde la fabricación hasta el punto de venta. Podemos detectar, reconocer y leer fácilmente diferentes tipos de códigos de barras y códigos QR en aplicaciones .NET. En este artículo, le mostraremos cómo leer un código de barras de una imagen en C# siguiendo unos sencillos pasos. Puede usar este artículo como una guía paso a paso para desarrollar aplicaciones de lectores o escáneres de códigos de barras.

En primer lugar, echaremos un vistazo a la API de C# Barcode Reader para leer los códigos de barras disponibles en la imagen de entrada. A continuación, veremos los pasos para detectar, reconocer y extraer datos de códigos de barras de la imagen. Encontrará pasos detallados y fragmentos de código. Finalmente, proporcionaremos enlaces útiles para futuras mejoras. ¡Entonces empecemos!

En este artículo se tratarán los siguientes temas:

  1. API de C# para leer el código de barras de la imagen
  2. Pasos para leer el código de barras de una imagen
  3. Leer código de barras de mapa de bits
  4. Leer código de barras de la imagen usando Stream
  5. Cómo leer un código de barras de un tipo específico
  6. Leer códigos de barras de varios tipos de una imagen
  7. Detectar y leer conjuntos predefinidos de simbologías
  8. Detectar y leer varios códigos de barras de una imagen
  9. Obtener las coordenadas X e Y del código de barras
  10. Leer código de barras de una región específica de la imagen
  11. Leer código de barras de varias regiones de la imagen

API de C# para leer el código de barras de la imagen

Para leer un código de barras de una imagen, usaremos la API Aspose.BarCode for .NET. La API permite generar, escanear y leer una amplia gama de simbologías de códigos de barras. Permite representar imágenes de códigos de barras en formato JPEG, TIFF, PNG, BMP y GIF.

La API proporciona la clase BarCodeReader que permite el reconocimiento de más de 60 tipos de códigos de barras diferentes a partir de imágenes dadas. El primer paso para detectar códigos de barras es especificar la fuente de una imagen con códigos de barras. Puede ser un archivo, un objeto de mapa de bits o una secuencia. Entonces es necesario especificar las simbologías de destino dentro del parámetro DecodeType. Podemos revisar todos los diferentes tipos de simbologías admitidas especificando DecodeType.AllSupportedTypes. El método ReadBarCodes() de esta clase devuelve una matriz de códigos de barras reconocidos. La clase BarCodeResult de la API almacena los datos de códigos de barras reconocidos, como el tipo de código de barras, el texto del código, la región y otros parámetros.

La API también permite especificar las regiones de una imagen que debe leer el lector de código de barras. Esto se puede lograr usando un objeto Rectangle de .NET y permite evitar la necesidad de encontrar códigos de barras en áreas de imágenes que no contienen códigos de barras de forma predeterminada.

Descargue la DLL de la API o instálela usando NuGet.

PM> Install-Package Aspose.BarCode 

Leer código de barras de una imagen usando C#

Podemos leer fácilmente un código de barras de una imagen siguiendo los pasos que se detallan a continuación:

  1. En primer lugar, cargue una imagen utilizando la clase BarCodeReader.
  2. Llame al método readBarCodes() y obtenga resultados de reconocimiento en el objeto de clase BarCodeResult.
  3. Finalmente, recorra los resultados y muestre el tipo y el texto del código de barras.

El siguiente ejemplo de código muestra cómo leer un código de barras de una imagen en C#.

// Este ejemplo de código demuestra cómo leer un código de barras de un archivo de imagen.
// Inicializar lector de código de barras
BarCodeReader reader = new BarCodeReader("C:\\Files\\BarCode\\Sample.png");

// Leer código de barras y mostrar resultados
foreach(BarCodeResult result in reader.ReadBarCodes()) 
{
    Console.Out.WriteLine("CodeText: " + result.CodeText);
    Console.Out.WriteLine("Symbology type: " + result.CodeType);
}
Leer código de barras de una imagen.

Lea el código de barras de una imagen en C#.

Leer código de barras de mapa de bits en C#

Podemos leer fácilmente un código de barras de una imagen siguiendo los pasos que se detallan a continuación:

  1. En primer lugar, cargue una imagen utilizando la clase Bitmap.
  2. A continuación, cree una instancia de la clase BarCodeReader con el objeto Bitmap.
  3. Llame al método ReadBarCodes() y obtenga resultados de reconocimiento en el objeto de clase BarCodeResult.
  4. Finalmente, recorra los resultados y muestre el tipo y el texto del código de barras.

El siguiente ejemplo de código muestra cómo leer un código de barras desde un mapa de bits en C#.

// Este ejemplo de código demuestra cómo leer un código de barras desde un mapa de bits.
// Cargar imagen en mapa de bits
Bitmap bmp = new Bitmap("C:\\Files\\BarCode\\Code128.jpg");

// Inicializar lector de código de barras
BarCodeReader reader = new BarCodeReader(bmp);

// Lea todos los códigos de barras en el área provista
foreach (BarCodeResult result in reader.ReadBarCodes())
{
    Console.Out.WriteLine("CodeText: " + result.CodeText);
    Console.Out.WriteLine("Symbology type: " + result.CodeType);
}
Lea el código de barras de la imagen de mapa de bits en C#.

Lea el código de barras de Bitmap en C#.

Lea el código de barras de la imagen usando Stream en C#

También podemos cargar la imagen del código de barras utilizando un flujo de archivos y leer un código de barras siguiendo los pasos que se indican a continuación:

  1. En primer lugar, cargue una imagen usando la clase FileStream.
  2. A continuación, cree una instancia de la clase BarCodeReader con el objeto de flujo.
  3. Llame al método ReadBarCodes() y obtenga resultados de reconocimiento en el objeto de clase BarCodeResult.
  4. Finalmente, recorra los resultados y muestre el tipo y el texto del código de barras.

El siguiente ejemplo de código muestra cómo leer un código de barras de una imagen mediante Stream en C#.

// Este ejemplo de código demuestra cómo leer un código de barras de una imagen usando un flujo de archivos.
// Cargar imagen
Stream stream = new FileStream("C:\\Files\\BarCode\\MultipleBarcodes.jpeg", FileMode.Open, FileAccess.Read);

// Inicializar lector de código de barras
BarCodeReader reader = new BarCodeReader(stream);

// Lea todos los códigos de barras en el área provista
foreach (BarCodeResult result in reader.ReadBarCodes())
{
    Console.Out.WriteLine("CodeText: " + result.CodeText);
    Console.Out.WriteLine("Symbology type: " + result.CodeType);
}

Lea el código de barras de un tipo específico de la imagen en C#

Se recomienda seleccionar simbologías de código de barras de destino que se considerarán para el reconocimiento a fin de minimizar la cantidad de tiempo necesario para completar el reconocimiento y evitar intentos de reconocer códigos de barras obsoletos.

Podemos especificar el tipo de código de barras de destino y leer el código de barras de una imagen siguiendo los pasos que se indican a continuación:

  1. En primer lugar, cargue una imagen utilizando la clase BarCodeReader.
  2. A continuación, establezca un tipo de decodificación de código de barras, como Code39Standard.
  3. Después de eso, obtenga resultados de reconocimiento en el objeto de clase BarCodeResult utilizando el método ReadBarCodes().
  4. Finalmente, recorra los resultados y muestre el tipo y el texto del código de barras.

El siguiente ejemplo de código muestra cómo leer un código de barras de un tipo específico de una imagen usando C#.

// Este ejemplo de código demuestra cómo leer un código de barras de un tipo de decodificación específico de una imagen.
// Inicializar lector de código de barras
BarCodeReader reader = new BarCodeReader("C:\\Files\\BarCode\\Code39Standard.jpg", DecodeType.Code39Standard);

// Leer código de barras de tipo Code39Extended
foreach (BarCodeResult result in reader.ReadBarCodes())
{
    Console.Out.WriteLine("CodeText: " + result.CodeText);
    Console.Out.WriteLine("Symbology type: " + result.CodeType);
}
Reconocer el código de barras de un tipo específico de la imagen

Reconocer el código de barras de un tipo específico de la imagen en C#.

Leer código de barras de múltiples tipos de imagen en C#

También podemos especificar varios tipos de códigos de barras siguiendo los pasos que se indican a continuación:

  1. En primer lugar, cargue una imagen utilizando la clase BarCodeReader.
  2. A continuación, configure los tipos de decodificación de un código de barras mediante el método SetBarCodeReadType().
  3. Después de eso, obtenga resultados de reconocimiento en el objeto de clase BarCodeResult utilizando el método ReadBarCodes().
  4. Finalmente, recorra los resultados y muestre el tipo y el texto del código de barras.

El siguiente ejemplo de código muestra cómo leer códigos de barras de varios tipos de una imagen mediante C#.

// Este ejemplo de código demuestra cómo leer el código de barras de múltiples tipos de decodificación de una imagen.
// Inicializar lector de código de barras
BarCodeReader reader = new BarCodeReader("C:\\Files\\BarCode\\MultipleBarcodes.png");
reader.SetBarCodeReadType(DecodeType.DataMatrix, DecodeType.QR, DecodeType.Code39Extended);

// Leer códigos de barras
foreach (BarCodeResult result in reader.ReadBarCodes())
{
    Console.Out.WriteLine("CodeText: " + result.CodeText);
    Console.Out.WriteLine("Symbology type: " + result.CodeType);
    Console.Out.WriteLine("-------------------------");
}
Leer códigos de barras de varios tipos de imágenes en C#

Leer códigos de barras de varios tipos de imágenes en C#

También podemos especificar múltiples tipos de decodificación en el constructor de la clase BarCodeReader como se muestra a continuación:

BarCodeReader reader = new BarCodeReader("C:\\Files\\BarCode\\Code39Standard.jpg", DecodeType.DataMatrix, DecodeType.QR, DecodeType.Code39Extended);

Leer un conjunto predefinido de tipos de código de barras de la imagen en C#

Podemos leer un conjunto predefinido de simbologías para el reconocimiento definido en la clase DecodeTypes. Podemos configurar cualquiera de los siguientes conjuntos predefinidos:

  • AllSupportedTypes: todos los tipos de códigos de barras admitidos
  • Types1D: todas las simbologías 1D admitidas
  • Types2D: todas las simbologías 2D admitidas
  • PostalTypes: todas las simbologías postales admitidas que utilizan principalmente los servicios postales
  • MostCommonTypes: un conjunto de estándares de códigos de barras más utilizados definidos

Podemos especificar un conjunto predefinido siguiendo los pasos que se indican a continuación:

  1. En primer lugar, en primer lugar, cargue una imagen utilizando la clase BarCodeReader.
  2. A continuación, establezca un tipo de decodificación de código de barras en el constructor BarCodeReader o el método SetBarCodeReadType, como DecodeType.Types2D.
  3. Después de eso, obtenga resultados de reconocimiento en el objeto de clase BarCodeResult utilizando el método ReadBarCodes().
  4. Finalmente, recorra los resultados y muestre el tipo y el texto del código de barras.

El siguiente ejemplo de código muestra cómo leer un código de barras usando un conjunto predefinido de simbologías en C#.

// Este ejemplo de código demuestra cómo leer un código de barras utilizando un conjunto predefinido de simbologías.
// Inicializar lector de código de barras
BarCodeReader reader = new BarCodeReader("C:\\Files\\BarCode\\MultipleBarcodes.png", DecodeType.Types1D);

// Leer código de barras y mostrar resultados
foreach (BarCodeResult result in reader.ReadBarCodes())
{
    Console.Out.WriteLine("CodeText: " + result.CodeText);
    Console.Out.WriteLine("Symbology type: " + result.CodeType);
    Console.Out.WriteLine("-------------------------");
}
Leer un conjunto predefinido de tipos de código de barras de la imagen en C#

Leer un conjunto predefinido de tipos de código de barras de la imagen en C#

Leer múltiples códigos de barras de la imagen en C#

También podemos leer todos los códigos de barras disponibles de una imagen siguiendo los pasos que se detallan a continuación:

  1. En primer lugar, cargue una imagen utilizando la clase BarCodeReader.
  2. A continuación, establezca un tipo de decodificación de código de barras como TODOS LOS TIPOS COMPATIBLES.
  3. Después de eso, obtenga resultados de reconocimiento en el objeto de clase BarCodeResult utilizando el método ReadBarCodes().
  4. Finalmente, recorra los resultados y muestre el tipo y el texto del código de barras.

El siguiente ejemplo de código muestra cómo leer varios códigos de barras de una imagen mediante C#.

// Este ejemplo de código demuestra cómo leer un código de barras de varios códigos de barras de una imagen.
// Inicializar lector de código de barras
BarCodeReader reader = new BarCodeReader("C:\\Files\\BarCode\\MultipleBarcodes.png", DecodeType.AllSupportedTypes);

// Lea todos los tipos de código de barras disponibles en la imagen de entrada
foreach (BarCodeResult result in reader.ReadBarCodes())
{
    Console.Out.WriteLine("CodeText: " + result.CodeText);
    Console.Out.WriteLine("Symbology type: " + result.CodeType);
    Console.Out.WriteLine("-------------------------");
}
Lea varios códigos de barras de la imagen.

Lea varios códigos de barras de una imagen.

Obtenga las coordenadas X e Y del código de barras usando C#

Podemos leer las coordenadas X e Y del código de barras detectado de una imagen siguiendo los pasos que se detallan a continuación:

  1. En primer lugar, cargue una imagen utilizando la clase BarCodeReader.
  2. A continuación, obtenga resultados de reconocimiento en el objeto de clase BarCodeResult utilizando el método ReadBarCodes().
  3. Luego, recorra los resultados y verifique si la Región no es nula.
  4. Después de eso, obtenga la matriz de Puntos que limita la región del código de barras usando los Puntos.
  5. Finalmente, muestre los puntos X e Y del código de barras.

El siguiente ejemplo de código muestra cómo obtener los puntos de coordenadas X e Y de un código de barras de una imagen usando C#.

// Este ejemplo de código demuestra cómo leer el punto de la región X e Y de los códigos de barras de una imagen.
// Inicializar lector de código de barras
BarCodeReader reader = new BarCodeReader("C:\\Files\\BarCode\\Code39Standard.jpg", DecodeType.AllSupportedTypes);

// Leer código de barras
foreach (BarCodeResult result in reader.ReadBarCodes())
{
    if (result.Region != null)
    {
        // Muestra las coordenadas x e y de todos los códigos de barras detectados
        Point[] point = result.Region.Points;
        Console.Out.WriteLine("Top left coordinates: X = " + point[0].X + ", Y = " + point[0].Y);
        Console.Out.WriteLine("Bottom left coordinates: X = " + point[1].X + ", Y = " + point[1].Y);
        Console.Out.WriteLine("Bottom right coordinates: X = " + point[2].X + ", Y = " + point[2].Y);
        Console.Out.WriteLine("Top right coordinates: X = " + point[3].X + ", Y = " + point[3].Y);
    }
}
Obtenga las coordenadas X e Y del código de barras

Obtenga las coordenadas X e Y de un código de barras a partir de una imagen.

Leer código de barras de una región específica de la imagen en C#

Podemos leer un código de barras de una región específica o un área de una imagen siguiendo los pasos que se detallan a continuación:

  1. En primer lugar, lea los datos del búfer de un archivo de imagen utilizando el método de mapa de bits.
  2. A continuación, cree una instancia de la clase BarCodeReader. Toma una imagen, un área rectangular y un tipo de decodificación como argumentos.
  3. Después de eso, obtenga resultados de reconocimiento en el objeto de clase BarCodeResult utilizando el método ReadBarCodes().
  4. Finalmente, recorra los resultados y muestre el tipo y el texto del código de barras.

El siguiente ejemplo de código muestra cómo leer un código de barras de una región específica de una imagen usando C#.

// Este ejemplo de código demuestra cómo leer un código de barras de una región específica de una imagen.
// Cargar imagen
Bitmap img = new Bitmap("C:\\Files\\BarCode\\MultipleBarcodes.jpeg");

// Crear una instancia de la clase BarCodeReader
// y especifique un área para buscar el código de barras
BarCodeReader reader = new BarCodeReader(img, new Rectangle(0, 0, 400, 200));

// Lea todos los códigos de barras en el área provista
foreach (BarCodeResult result in reader.ReadBarCodes())
{
    Console.Out.WriteLine("CodeText: " + result.CodeText);
    Console.Out.WriteLine("Symbology type: " + result.CodeType);
}
Lea el código de barras de una región específica de la imagen.

Lea códigos de barras de una región específica de una imagen en C#.

Leer código de barras de múltiples regiones de imagen en C#

También podemos leer el código de barras de múltiples regiones de una imagen siguiendo los pasos que se detallan a continuación:

  1. En primer lugar, cargue una imagen utilizando la clase Bitmap.
  2. Luego, defina rectángulos usando la clase Rectangle.
  3. Luego, cree una instancia de la clase BarCodeReader.
  4. Mientras tanto, llama a SetBarCodeImage() con un objeto de imagen y rectángulos como argumentos.
  5. Opcionalmente, configure los tipos de lectura de códigos de barras mediante el método SetBarCodeReadType().
  6. Después de eso, obtenga resultados de reconocimiento en el objeto de clase BarCodeResult utilizando el método ReadBarCodes().
  7. Finalmente, recorra los resultados y muestre el tipo y el texto del código de barras.

El siguiente ejemplo de código muestra cómo leer un código de barras de varias regiones de una imagen mediante C#.

// Este ejemplo de código demuestra cómo leer un código de barras de una región específica de una imagen.
// Cargar imagen en mapa de bits
Bitmap bmp = new Bitmap("C:\\Files\\BarCode\\MultipleBarcodes.png");

// Rectángulo de un código de barras 2D en la imagen de origen
Rectangle rect2D = new Rectangle(0, 0, 400, 200);

// Rectángulo del código de barras Code128 en la imagen de origen
Rectangle rectCode128 = new Rectangle(450, 100, 600, 180);

// Inicializar lector de código de barras
BarCodeReader reader = new BarCodeReader();
reader.SetBarCodeImage(bmp, new Rectangle[] { rect2D, rectCode128 });
reader.SetBarCodeReadType(DecodeType.AllSupportedTypes);

// Lea todos los códigos de barras en el área provista
foreach (BarCodeResult result in reader.ReadBarCodes())
{
    Console.Out.WriteLine("CodeText: " + result.CodeText);
    Console.Out.WriteLine("Symbology type: " + result.CodeType);
    Console.Out.WriteLine("-------------------------");
}
Lea el código de barras de varias regiones de la imagen.

Lea códigos de barras de varias regiones de una imagen en C#.

Obtenga una licencia gratis

Puede obtener una licencia temporal gratuita para probar la biblioteca sin limitaciones de evaluación.

Conclusión

En este artículo, hemos aprendido a:

  • Cargue el archivo de imagen del código de barras;
  • Lea imágenes como mapa de bits o usando flujo de archivos;
  • reconocer códigos de barras de diferentes tipos a partir de una imagen;
  • leer las coordenadas del código de barras;
  • detectar y leer múltiples códigos de barras de una sola imagen;
  • detectar y leer códigos de barras de un área específica de una imagen.

Además de leer el código de barras de una imagen en C#, puede obtener más información sobre Aspose.BarCode para la API de .NET utilizando documentación. En caso de cualquier ambigüedad, no dude en contactarnos en nuestro foro de soporte gratuito.

Ver también