Comment lire des codes-barres à partir d'objets dessin système

How to Read Barcodes From System.Drawing Objects

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

Les objets System.Drawing sont largement utilisés dans .NET pour des tâches liées au traitement d'images par les développeurs. Cependant, Microsoft a cessé le support de System.Drawing sur d'autres systèmes d'exploitation, tels que MacOS et Linux, et supporte désormais exclusivement Windows. Ce changement significatif a causé de nombreux problèmes pour les développeurs utilisant IronBarcode sur des systèmes d'exploitation autres que Windows. C'est parce que travailler avec des codes-barres implique généralement d'utiliser des objets comme graphics, images et fonts.

Pour résoudre ce problème, nous avons introduit une solution alternative : IronDrawing. Cette bibliothèque gratuite et open-source, initiée par IronSoftware, vise à simplifier le processus de la rendre fonctionnelle sur des systèmes d'exploitation autres que Windows. Cela offre une expérience conviviale pour nos utilisateurs. Une fois que vous avez installé IronBarcode depuis NuGet, IronDrawing sera automatiquement inclus dans votre projet.

Démarrage rapide : Lire un code-barres en utilisant AnyBitmap en une ligne facile

Cet extrait montre à quel point IronBarcode peut lire un code-barres simplement en créant un System.Drawing.Bitmap et en laissant IronDrawing le convertir implicitement en AnyBitmap. En une seule ligne, les développeurs sur n'importe quel système d'exploitation obtiennent des résultats rapidement et simplement.

Nuget IconGet started making PDFs with NuGet now:

  1. Install IronBarcode with NuGet Package Manager

    PM > Install-Package BarCode

  2. Copy and run this code snippet.

    var results = IronBarCode.BarcodeReader.Read((AnyBitmap)(new System.Drawing.Bitmap("yourImage.png")));
  3. Deploy to test on your live environment

    Start using IronBarcode in your project today with a free trial
    arrow pointer
class="hsg-featured-snippet">

Flux de travail minimal (5 étapes)

  1. Téléchargez la bibliothèque C# pour lire les codes-barres depuis System.Drawing
  2. Utilisez IronDrawing pour convertir les objets System.Drawing en AnyBitmap
  3. Utilisez la méthode Read pour lire les codes-barres à partir des objets AnyBitmap
  4. Affichez les valeurs de codes-barres détectées sur la console
  5. Explorez un autre article pour apprendre comment IronDrawing est utilisé pour gérer les couleurs et les polices

Convertir System.Drawing en AnyBitmap

Lire des codes-barres à partir de System.Drawing implique simplement de convertir l'objet en AnyBitmap. IronDrawing a été conçu pour être facile à utiliser. Par conséquent, IronDrawing supporte la conversion implicite des objets image de System.Drawing en objets image IronSoftware.Drawing appelés AnyBitmap.

En plus des objets System.Drawing, nous supportons également la conversion d'autres types d'objets, y compris :

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

Les utilisateurs peuvent se référer à l'exemple de code suivant pour convertir les objets ci-dessus. Ci-dessous un extrait de code qui démontre comment convertir des images de codes-barres de System.Drawing objects en IronSoftware.Drawing.AnyBitmap. Voici un exemple 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

À partir de l'extrait de code ci-dessus, nous avons chargé deux images de codes-barres comme System.Drawing.Bitmap et System.Drawing.Image. Nous les avons ensuite converties implicitement en AnyBitmap simplement en les assignant à des objets AnyBitmap. Ensuite, nous avons ajouté ces objets à une liste AnyBitmap.

Lire des codes-barres depuis AnyBitmap

IronBarcode peut facilement accepter les objets IronSoftware.Drawing.AnyBitmap dans toutes ses méthodes sans nécessiter de configuration supplémentaire. Cela offre une facilité d'utilisation aux développeurs utilisant IronBarcode avec des objets System.Drawing qui ne sont pas supportés sur des systèmes d'exploitation autres que Windows. L'extrait de code ci-dessous démontre comment faire cela.

: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

L'extrait de code ci-dessus est une extension du précédent. Une fois que nous avons rempli la liste AnyBitmap, nous avons itéré à travers la liste et appelé la méthode Read sur chaque objet AnyBitmap en tant que paramètre, ce qui a ensuite renvoyé IronBarcode.BarcodeResults. Nous avons ensuite itéré à travers l'objet retourné pour imprimer la valeur du code-barres sur la console.

La zone de fonctionnalité dans IronSoftware.Drawing ne se limite pas seulement à la conversion d'images. Elle est également largement utilisée dans d'autres aspects du traitement d'images, tels que les couleurs et les polices qui sont utiles dans le style des codes-barres et QR codes. Les utilisateurs peuvent explorer comment nous utilisons IronDrawing pour personnaliser et ajouter des logos aux QR codes.

Questions Fréquemment Posées

Comment puis-je lire des codes-barres à partir d'objets System.Drawing en .NET C# ?

Vous pouvez lire des codes-barres à partir d'objets System.Drawing en utilisant IronBarcode conjointement avec IronDrawing. D'abord, convertissez vos objets System.Drawing en AnyBitmap en utilisant IronDrawing, puis utilisez la méthode Read de IronBarcode pour lire les codes-barres.

Qu'est-ce que IronDrawing et comment cela aide-t-il à la lecture des codes-barres ?

IronDrawing est une bibliothèque libre et open-source par IronSoftware qui permet la conversion implicite des objets System.Drawing en AnyBitmap. Cela facilite la lecture des codes-barres sur les systèmes d'exploitation non-Windows en rendant ces objets compatibles avec IronBarcode.

Puis-je utiliser IronBarcode pour lire des codes-barres sur MacOS et Linux ?

Oui, en utilisant IronDrawing, vous pouvez convertir des objets System.Drawing en AnyBitmap, ce qui permet à IronBarcode de lire des codes-barres sur MacOS et Linux, surmontant la limitation de System.Drawing étant uniquement pour Windows.

Quels types d'objets image peuvent être convertis en AnyBitmap pour la lecture de codes-barres ?

En plus des objets System.Drawing, vous pouvez convertir System.Drawing.Bitmap, System.Drawing.Image, SkiaSharp.SKBitmap, SkiaSharp.SKImage, et les objets SixLabors.ImageSharp en AnyBitmap pour la lecture de codes-barres avec IronBarcode.

Comment afficher les valeurs de codes-barres détectées avec IronBarcode ?

Après avoir lu les codes-barres avec la méthode Read de IronBarcode, parcourez le tableau BarcodeResult et imprimez chaque valeur de code-barres à la console.

IronDrawing est-il inclus lors de l'installation d'une bibliothèque de lecture de codes-barres à partir de NuGet ?

Oui, IronDrawing est automatiquement inclus dans votre projet lorsque vous installez IronBarcode à partir de NuGet, fournissant une intégration sans faille pour la lecture de codes-barres.

Comment la conversion implicite des objets image aide-t-elle dans le traitement des codes-barres ?

La conversion implicite des objets image en AnyBitmap avec IronDrawing simplifie le processus de rendre les objets System.Drawing compatibles avec IronBarcode, améliorant le traitement des codes-barres sur divers systèmes d'exploitation.

Hairil Hasyimi Bin Omar
Ingénieur logiciel
Comme tous les grands ingénieurs, Hairil est un apprenant avide. Il affine ses connaissances en C#, Python et Java, utilisant ces connaissances pour apporter de la valeur aux membres de l'équipe dans toute Iron Software. Hairil a rejoint l'équipe d'Iron Software depuis l'Université Teknologi MARA en Malaisie, ...
Lire la suite
Prêt à commencer?
Nuget Téléchargements 1,935,276 | Version : 2025.11 vient de sortir