Comment lire des codes-barres à partir d'objets System.Drawing

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

par Hairil Hasyimi Bin Omar

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.

Première étape :
green arrow pointer


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)
VB   C#

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
VB   C#

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.

Hairil related to Lire les codes-barres de AnyBitmap

Hairil Hasyimi Bin Omar

Ingénieur logiciel

Comme tous les grands ingénieurs, Hairil est un fervent apprenant. Il affine ses connaissances en C#, Python et Java, et les utilise pour apporter une valeur ajoutée aux membres de l'équipe d'Iron Software. Hairil a rejoint l'équipe d'Iron Software en provenance de l'Universiti Teknologi MARA en Malaisie, où il a obtenu une licence en génie chimique et des procédés.