Comment lire des codes-barres à partir d'objets System.Drawing
Les objets System.Drawing sont largement utilisés dans .NET pour les tâches liées au traitement des images par les développeurs. Cependant, Microsoft aarrêt de la prise en charge de System.Drawing sur d'autres systèmes d'exploitation, tels que MacOS et Linux, et prend désormais exclusivement en charge Windows. Ce changement important a causé de nombreux problèmes aux développeurs qui utilisent IronBarcode sur des systèmes d'exploitation autres que Windows. En effet, le travail avec les codes-barres implique généralement l'utilisation d'objets tels que les graphiques, les images et les fontes.
Pour résoudre ce problème, nous avons introduit une solution alternative :Dessin au fer. Cette bibliothèque gratuite et open-source, initiée par IronSoftware, a pour but de simplifier le processus dele faire fonctionner sur les systèmes d'exploitation autres que Windows. Cela permet à nos utilisateurs de bénéficier d'une expérience conviviale. Une fois IronBarcode installé depuis NuGet, IronDrawing sera automatiquement inclus dans votre projet.
Commencer avec IronBarcode
Commencez à utiliser IronBarcode dans votre projet dès aujourd'hui avec un essai gratuit.
Comment lire des codes-barres à partir d'objets System.Drawing
- Téléchargez la bibliothèque C# pour la lecture des codes-barres à partir de System.Drawing
- Utiliser IronDrawing pour convertir des objets System.Drawing en AnyBitmap
- Utiliser le
Lire
pour lire les codes-barres des objets AnyBitmap - Afficher les valeurs des codes-barres détectés sur la console
- Consultez un autre article pour savoir comment IronDrawing est utilisé pour gérer les couleurs et les polices
Cast System.Drawing vers AnyBitmap
La lecture de codes-barres à partir de System.Drawing implique simplement de couler l'objet en AnyBitmap. IronDrawing a été conçu dans un souci de facilité d'utilisation. Par conséquent, IronDrawing prend en charge le moulage implicite des objets image de System.Drawing en objets image IronSoftware.Drawing appelés AnyBitmap.
Outre les objets System.Drawing, nous prenons également en charge le moulage à partir d'autres types d'objets, notamment :
- System.Drawing.Bitmap
- System.Drawing.Image
- SkiaSharp.SKBitmap
- SkiaSharp.SKImage
SixLabors.ImageSharp (en anglais)
Les utilisateurs peuvent se référer aux éléments suivantsexemple de code pour les objets coulés ci-dessus. Voici un extrait de code qui montre comment convertir des images de codes-barres d'objets System.Drawing en IronSoftware.Drawing.AnyBitmap.
: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)
Dans l'extrait de code ci-dessus, nous avons chargé deux images de code-barres en tant que System.Drawing.Bitmap et System.Drawing.Image. Nous les transformons ensuite implicitement en AnyBitmap en les assignant simplement à des objets AnyBitmap. Ensuite, nous avons ajouté ces objets à une liste AnyBitmap.
Lire les codes-barres de AnyBitmap
IronBarcode peut facilement accepter les objets IronSoftware.Drawing.AnyBitmap dans toutes ses méthodes sans nécessiter de configuration supplémentaire. Cela facilite la tâche des développeurs qui utilisent IronBarcode avec des objets System.Drawing qui ne sont pas pris en charge sur les systèmes d'exploitation autres que Windows. L'extrait de code ci-dessous montre comment procéder.
: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
L'extrait de code ci-dessus est une extension du précédent. Une fois la liste AnyBitmap remplie, 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 retourné IronBarcode.BarcodeResults. Nous avons ensuite itéré à travers l'objet retourné pour imprimer la valeur du code-barres sur la console.
Le domaine de fonctionnalité de IronSoftware.Drawing ne se limite pas à la coulée d'images. Il est également très utilisé dans d'autres aspects du traitement d'image, tels que les couleurs et les fonts qui sont utiles pour styliser les codes-barres et les codes QR. Les utilisateurs peuvent découvrir comment nous utilisons IronDrawing pourpersonnaliser et ajouter des logos aux codes QR.