Cómo Leer Códigos de Barras Desde Objetos del Sistema de Dibujo

Cómo leer códigos de barras desde System.Drawing en C

This article was translated from English: Does it need improvement?
Translated
View the article in English

Los objetos System.Drawing son ampliamente utilizados en .NET para tareas relacionadas con el procesamiento de imágenes por los desarrolladores. Sin embargo, Microsoft ha descontinuado el soporte para System.Drawing en otros sistemas operativos, como MacOS y Linux, y ahora lo soporta exclusivamente en Windows. Este cambio significativo ha causado múltiples problemas para los desarrolladores que usan IronBarcode en sistemas operativos diferentes de Windows. Esto se debe a que trabajar con códigos de barras generalmente implica utilizar objetos como gráficas, imágenes y fuentes.

Para abordar este problema, hemos introducido una solución alternativa: IronDrawing. Esta biblioteca gratuita y de código abierto, iniciada por Iron Software, tiene como objetivo simplificar el proceso de hacerla funcionar en sistemas operativos distintos de Windows. Esto ofrece una experiencia fácil de usar para nuestros usuarios. Una vez que instales IronBarcode desde NuGet, IronDrawing se incluirá automáticamente en tu proyecto.

Inicio Rápido: Lee un código de barras usando AnyBitmap en una sola línea fácil

Este fragmento muestra lo fácil que puede IronBarcode leer un código de barras creando un System.Drawing.Bitmap y dejando que IronDrawing lo convierta implícitamente a AnyBitmap. Con solo una línea, los desarrolladores en cualquier sistema operativo obtienen resultados rápida y simplemente.

Nuget IconEmpieza a crear PDF con NuGet ahora:

  1. Instalar IronBarcode con el gestor de paquetes NuGet

    PM > Install-Package BarCode

  2. Copie y ejecute este fragmento de código.

    var results = IronBarCode.BarcodeReader.Read((AnyBitmap)(new System.Drawing.Bitmap("yourImage.png")));
  3. Despliegue para probar en su entorno real

    Empieza a utilizar IronBarcode en tu proyecto hoy mismo con una prueba gratuita
    arrow pointer

Sistema de conversión de dibujo a cualquier mapa de bits

Leer códigos de barras desde System.Drawing simplemente implica convertir el objeto a AnyBitmap. IronDrawing fue diseñado pensando en la facilidad de uso. Concretamente, IronDrawing admite la conversión implícita de objetos de imagen de System.Drawing en objetos de imagen AnyBitmap de Iron Software.Drawing.

Además de objetos System.Drawing, también soportamos la conversión desde otros tipos de objetos, incluidos:

  • System.Drawing.Bitmap
  • System.Drawing.Image
  • SkiaSharp.SKBitmap
  • SkiaSharp.SKImage
  • SixLabors.ImageSharp

Los usuarios pueden consultar el siguiente ejemplo de código para convertir los objetos anteriores. A continuación, se presenta un fragmento de código que demuestra cómo convertir imágenes de códigos de barras de System.Drawing objects a Iron Software.Drawing.AnyBitmap. Aquí hay un ejemplo simple:

:path=/static-assets/barcode/content-code-examples/how-to/read-barcodes-from-system-drawing-cast-to-anybitmap.cs
using IronSoftware.Drawing;
using System.Collections.Generic;

List<AnyBitmap> barcodes = new List<AnyBitmap>();

// Instantiate System.Drawing.Bitmap
System.Drawing.Bitmap bitmapFromBitmap = new System.Drawing.Bitmap("test1.jpg");

// Cast from System.Drawing.Bitmap to AnyBitmap
AnyBitmap barcode1 = bitmapFromBitmap;

barcodes.Add(barcode1);

// Instantiate System.Drawing.Bitmap
System.Drawing.Image bitmapFromFile = System.Drawing.Image.FromFile("test2.png");

// Cast from System.Drawing.Image to AnyBitmap
AnyBitmap barcode2 = bitmapFromFile;

barcodes.Add(barcode2);
Imports IronSoftware.Drawing
Imports System.Collections.Generic

Private barcodes As New List(Of AnyBitmap)()

' Instantiate System.Drawing.Bitmap
Private bitmapFromBitmap As New System.Drawing.Bitmap("test1.jpg")

' Cast from System.Drawing.Bitmap to AnyBitmap
Private barcode1 As AnyBitmap = bitmapFromBitmap

barcodes.Add(barcode1)

' Instantiate System.Drawing.Bitmap
Dim bitmapFromFile As System.Drawing.Image = System.Drawing.Image.FromFile("test2.png")

' Cast from System.Drawing.Image to AnyBitmap
Dim barcode2 As AnyBitmap = bitmapFromFile

barcodes.Add(barcode2)
$vbLabelText   $csharpLabel

En el fragmento de código anterior, cargamos dos imágenes de códigos de barras como System.Drawing.Bitmap y System.Drawing.Image. Luego los convertimos implícitamente a AnyBitmap simplemente asignándolos a objetos AnyBitmap. Posteriormente, añadimos estos objetos a una lista de AnyBitmap.

Leer códigos de barras desde AnyBitmap

IronBarcode puede aceptar fácilmente objetos Iron Software.Drawing.AnyBitmap en todos sus métodos sin requerir configuración adicional. Esto ofrece facilidad de uso a los desarrolladores que usan IronBarcode con objetos System.Drawing que no son soportados en sistemas operativos distintos de Windows. El siguiente fragmento de código demuestra cómo hacerlo.

:path=/static-assets/barcode/content-code-examples/how-to/read-barcodes-from-system-drawing-read-anybitmap.cs
using IronBarCode;
using IronSoftware.Drawing;
using System;
using System.Collections.Generic;

List<AnyBitmap> barcodes = new List<AnyBitmap>();

System.Drawing.Bitmap bitmapFromBitmap = new System.Drawing.Bitmap("test1.jpg");
AnyBitmap barcode1 = bitmapFromBitmap;
barcodes.Add(barcode1);

System.Drawing.Image bitmapFromFile = System.Drawing.Image.FromFile("test2.png");
AnyBitmap barcode2 = bitmapFromFile;
barcodes.Add(barcode2);

foreach (var barcode in barcodes)
{
    // Read the barcode
    var results = BarcodeReader.Read(barcode);
    foreach (var result in results)
    {
        // Output the detected barcode value
        Console.WriteLine(result.Value);
    }
}
Imports IronBarCode
Imports IronSoftware.Drawing
Imports System
Imports System.Collections.Generic

Private barcodes As New List(Of AnyBitmap)()

Private bitmapFromBitmap As New System.Drawing.Bitmap("test1.jpg")
Private barcode1 As AnyBitmap = bitmapFromBitmap
barcodes.Add(barcode1)

Dim bitmapFromFile As System.Drawing.Image = System.Drawing.Image.FromFile("test2.png")
Dim barcode2 As AnyBitmap = bitmapFromFile
barcodes.Add(barcode2)

For Each barcode In barcodes
	' Read the barcode
	Dim results = BarcodeReader.Read(barcode)
	For Each result In results
		' Output the detected barcode value
		Console.WriteLine(result.Value)
	Next result
Next barcode
$vbLabelText   $csharpLabel

El fragmento de código anterior es una extensión del anterior. Una vez que llenamos la lista AnyBitmap, iteramos a través de la lista y llamamos al método Read en cada objeto AnyBitmap como parámetro, el cual luego devolvió IronBarcode.BarcodeResults. Luego iteramos a través del objeto devuelto para imprimir el valor del código de barras en la consola.

El área de funcionalidad en Iron Software.Drawing no se limita solamente a convertir imágenes. También se utiliza mucho en otros aspectos del procesamiento de imágenes, como colores y fuentes que son útiles para estilizar códigos de barras y códigos QR. Los usuarios pueden explorar cómo utilizamos IronDrawing para personalizar y añadir logos a códigos QR.

Preguntas Frecuentes

¿Cómo puedo leer códigos de barras desde objetos System.Drawing en .NET C#?

Puede leer códigos de barras desde objetos System.Drawing utilizando IronBarcode junto con IronDrawing. Primero, convierta sus objetos System.Drawing en AnyBitmap usando IronDrawing, luego use el método Read de IronBarcode para leer los códigos de barras.

¿Qué es IronDrawing y cómo ayuda con la lectura de códigos de barras?

IronDrawing es una biblioteca gratuita y de código abierto de Iron Software que permite la conversión implícita de objetos System.Drawing en AnyBitmap. Esto facilita la lectura de códigos de barras en sistemas operativos que no son Windows al hacer que estos objetos sean compatibles con IronBarcode.

¿Puedo usar IronBarcode para leer códigos de barras en MacOS y Linux?

Sí, usando IronDrawing puede convertir objetos System.Drawing en AnyBitmap, lo que permite que IronBarcode lea códigos de barras en MacOS y Linux, superando la limitación de que System.Drawing sea solo para Windows.

¿Qué tipos de objetos de imagen pueden convertirse a AnyBitmap para la lectura de códigos de barras?

Además de objetos System.Drawing, puede convertir System.Drawing.Bitmap, System.Drawing.Image, SkiaSharp.SKBitmap, SkiaSharp.SKImage y objetos de SixLabors.ImageSharp a AnyBitmap para la lectura de códigos de barras con IronBarcode.

¿Cómo muestro los valores de códigos de barras detectados usando IronBarcode?

Después de leer códigos de barras con el método Read de IronBarcode, itere sobre la matriz BarcodeResult e imprima cada valor de código de barras en la consola.

¿Está IronDrawing incluido al instalar una biblioteca de lectura de códigos de barras desde NuGet?

Sí, IronDrawing se incluye automáticamente en su proyecto cuando instala IronBarcode desde NuGet, proporcionando una integración sin fisuras para la lectura de códigos de barras.

¿Cómo ayuda la conversión implícita de imágenes en el procesamiento de códigos de barras?

La conversión implícita de objetos de imagen en AnyBitmap usando IronDrawing simplifica el proceso de hacer que los objetos System.Drawing sean compatibles con IronBarcode, mejorando el procesamiento de códigos de barras en varios sistemas operativos.

Hairil Hasyimi Bin Omar
Ingeniero de Software
Como todos los grandes ingenieros, Hairil es un ávido aprendiz. Está refinando su conocimiento de C#, Python y Java, usando ese conocimiento para agregar valor a los miembros del equipo en Iron Software. Hairil se unió al equipo de Iron Software desde la Universiti Teknologi MARA en Malasia, donde se ...
Leer más
¿Listo para empezar?
Nuget Descargas 1,979,979 | Version: 2025.11 recién lanzado