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

Comment lire les codes-barres à partir de System.Drawing en C

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 Iron Software, 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 IconCommencez dès maintenant à créer des PDF avec NuGet :

  1. Installez IronBarcode avec le gestionnaire de packages NuGet

    PM > Install-Package BarCode

  2. Copiez et exécutez cet extrait de code.

    var results = IronBarCode.BarcodeReader.Read((AnyBitmap)(new System.Drawing.Bitmap("yourImage.png")));
  3. Déployez pour tester sur votre environnement de production.

    Commencez à utiliser IronBarcode dans votre projet dès aujourd'hui grâce à un essai gratuit.
    arrow pointer

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 Iron Software.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 Iron Software.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 Iron Software.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 Iron Software.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 Iron Software 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,979,979 | Version: 2025.11 vient de sortir