using IronBarCode;
using System.Drawing;
// Reading a barcode is easy with IronBarcode!
var resultFromFile = BarcodeReader.Read(@"file/barcode.png"); // From a file
var resultFromBitMap = BarcodeReader.Read(new Bitmap("barcode.bmp")); // From a bitmap
var resultFromImage = BarcodeReader.Read(Image.FromFile("barcode.jpg")); // From an image
var resultFromPdf = BarcodeReader.ReadPdf(@"file/mydocument.pdf"); // From PDF use ReadPdf
// To configure and fine-tune barcode reading, utilize the BarcodeReaderOptions class
var myOptionsExample = new BarcodeReaderOptions
{
// Choose a reading speed from: Faster, Balanced, Detailed, ExtremeDetail
// There is a tradeoff in performance as more detail is set
Speed = ReadingSpeed.Balanced,
// Reader will stop scanning once a single barcode is found (if set to true)
ExpectMultipleBarcodes = true,
// By default, all barcode formats are scanned for
// Specifying a subset of barcode types to search for would improve performance
ExpectBarcodeTypes = BarcodeEncoding.AllOneDimensional,
// Utilize multiple threads to read barcodes from multiple images in parallel
Multithreaded = true,
// Maximum threads for parallelized barcode reading
// Default is 4
MaxParallelThreads = 2,
// The area of each image frame in which to scan for barcodes
// Specifying a crop area will significantly improve performance and avoid noisy parts of the image
CropArea = new Rectangle(),
// Special setting for Code39 barcodes
// If a Code39 barcode is detected, try to read with both the base and extended ASCII character sets
UseCode39ExtendedMode = true
};
// Read with the options applied
var results = BarcodeReader.Read("barcode.png", myOptionsExample);
// Create a barcode with one line of code
var myBarcode = BarcodeWriter.CreateBarcode("12345", BarcodeWriterEncoding.EAN8);
// After creating a barcode, we may choose to resize
myBarcode.ResizeTo(400, 100);
// Save our newly-created barcode as an image
myBarcode.SaveAsImage("EAN8.jpeg");
Image myBarcodeImage = myBarcode.Image; // Can be used as Image
Bitmap myBarcodeBitmap = myBarcode.ToBitmap(); // Can be used as Bitmap
Dans ce tutoriel, nous comparerons deux bibliothèques C# largement utilisées - IronBarcode et QrCoder - pour travailler avec des codes QR et des codes-barres.
Commençons par une brève présentation des deux bibliothèques :
IronBarcode
IronBarcode est une bibliothèque créée et maintenue par Iron Software qui permet aux ingénieurs logiciels C# de lire et d'écrire des codes-barres et des codes QR dans des applications et des sites Web .NET. Il est disponible sur NuGet pour tous les Frameworks .NET et les Frameworks .NET Core. IronBarcode ne nécessite qu'une seule ligne de code pour lire ou écrire des codes-barres.
QrCoder
QRCoder est une bibliothèque C# simple qui permet de créer des codes QR. Elle ne dépend pas d'autres bibliothèques et est disponible sur NuGet dans les versions PCL de .NET Framework et .NET Core.
Les deux bibliothèques doivent présenter les caractéristiques principales suivantes :
Scanner le code QR
Scanner le code-barres
Générer un code QR
Générer un code-barres
Nous mettrons en œuvre toutes ces fonctionnalités à partir des deux bibliothèques et nous comparerons leurs performances.
Tout d'abord, installons les deux bibliothèques dans notre projet Visual Studio. Comme les deux bibliothèques ont leurs propres paquets NuGet, nous les installerons via la console du gestionnaire de paquets NuGet.
Installer IronBarcode
Pour installer IronBarcode, tapez la commande suivante dans la console du gestionnaire de paquets :
Install-Package BarCode
Ceci installera la bibliothèque IronBarcode dans notre projet.
Installation d'IronBarcode
Installer QrCoder
Tapez la commande suivante dans la console du gestionnaire de paquets
Install-Package QRCoder
Cela installera la bibliothèque QrCoder dans notre projet.
Installation de QrCoder
Nous allons maintenant générer notre premier code QR en utilisant les deux bibliothèques.
Générer des codes QR à l'aide d'IronBarcode
Le code suivant génère un code QR.
Stopwatch stopwatch = new Stopwatch();
stopwatch.Start();
var qrCode = QRCodeWriter.CreateQrCode("Iron Barcode Vs QrCoder");
qrCode.SaveAsPng(@"D:\Barcode Images\QrCodeByIronBarcode");
stopwatch.Stop();
Console.WriteLine($"Execution Time: {stopwatch.ElapsedMilliseconds} ms");
Stopwatch stopwatch = new Stopwatch();
stopwatch.Start();
var qrCode = QRCodeWriter.CreateQrCode("Iron Barcode Vs QrCoder");
qrCode.SaveAsPng(@"D:\Barcode Images\QrCodeByIronBarcode");
stopwatch.Stop();
Console.WriteLine($"Execution Time: {stopwatch.ElapsedMilliseconds} ms");
Dim stopwatch As New Stopwatch()
stopwatch.Start()
Dim qrCode = QRCodeWriter.CreateQrCode("Iron Barcode Vs QrCoder")
qrCode.SaveAsPng("D:\Barcode Images\QrCodeByIronBarcode")
stopwatch.Stop()
Console.WriteLine($"Execution Time: {stopwatch.ElapsedMilliseconds} ms")
$vbLabelText $csharpLabel
L'instance Stopwatch est créée pour mesurer le temps d'exécution du programme afin d'analyser l'efficacité de la bibliothèque.
Code-barres généré à partir d'IronBarcode
Temps d'exécution d'IronBarcode
IronBarcode prend 3503 ms pour générer et enregistrer un code QR.
Temps d'exécution d'IronBarcode pour la génération de nouveaux codes-barres
Créer un code QR avec QRCoder
L'exemple de code suivant génère un code QR à l'aide de QrCoder.
QRCodeGenerator qrGenerator = new QRCodeGenerator();
QRCodeData qrCodeData = qrGenerator.CreateQrCode("Iron Barcode Vs QrCoder", QRCodeGenerator.ECCLevel.Q);
QRCode qrCode = new QRCode(qrCodeData);
Bitmap qrCodeImage = qrCode.GetGraphic(20);
qrCodeImage.Save(@"D:\Barcode Images\QrCodeByQrCoder.png");
QRCodeGenerator qrGenerator = new QRCodeGenerator();
QRCodeData qrCodeData = qrGenerator.CreateQrCode("Iron Barcode Vs QrCoder", QRCodeGenerator.ECCLevel.Q);
QRCode qrCode = new QRCode(qrCodeData);
Bitmap qrCodeImage = qrCode.GetGraphic(20);
qrCodeImage.Save(@"D:\Barcode Images\QrCodeByQrCoder.png");
Dim qrGenerator As New QRCodeGenerator()
Dim qrCodeData As QRCodeData = qrGenerator.CreateQrCode("Iron Barcode Vs QrCoder", QRCodeGenerator.ECCLevel.Q)
Dim qrCode As New QRCode(qrCodeData)
Dim qrCodeImage As Bitmap = qrCode.GetGraphic(20)
qrCodeImage.Save("D:\Barcode Images\QrCodeByQrCoder.png")
$vbLabelText $csharpLabel
QrCoder ne fournit pas de fonction intégrée permettant d'enregistrer le code QR sous forme d'image. Cependant, nous pouvons l'enregistrer en analysant le QrCoder en un objet Bitmap. Nous pouvons ensuite enregistrer le code QR à l'aide de la fonction d'enregistrement fournie par Bitmap.
Code-barres généré par QrCoder
Temps d'exécution de Qrcoder
QrCoder prend 592 ms pour générer et enregistrer un code QR.
Le temps nécessaire à QrCoder pour générer un nouveau code-barres
Analyse
Le temps d'exécution d'IronBarcode est de 3503 ms, alors que celui de QrCoder n'est que de 592 ms. QrCoder est donc plus performant qu'IronBarcode.
La génération de codes QR est beaucoup plus simple dans IronBarcode, car nous n'avons besoin d'écrire que deux lignes de code. Avec la bibliothèque QrCoder, cinq lignes de code suffisent.
IronBarcode propose également une fonction intégrée permettant d'enregistrer les codes QR générés dans un fichier, ce qui n'est pas le cas de QrCoder. Nous devons créer un objet bitmap pour enregistrer le code QR dans un fichier. Nous devons donc créer quatre objets pour générer des codes QR à l'aide de QrCoder. Il suffit de créer un objet dans IronBarcode pour faire la même chose.
Ensuite, nous allons générer des codes-barres à l'aide des deux bibliothèques.
Générer un code-barres à l'aide d'IronBarcode
Le code suivant génère un code-barres à l'aide d'IronBarcode :
var barcode = BarcodeWriter.CreateBarcode("Iron Barcode Vs QrCoder", BarcodeEncoding.Code128);
barcode.SaveAsPng(@"D:\Barcode Images\BarcodeByIronBarcode.png");
var barcode = BarcodeWriter.CreateBarcode("Iron Barcode Vs QrCoder", BarcodeEncoding.Code128);
barcode.SaveAsPng(@"D:\Barcode Images\BarcodeByIronBarcode.png");
Dim barcode = BarcodeWriter.CreateBarcode("Iron Barcode Vs QrCoder", BarcodeEncoding.Code128)
barcode.SaveAsPng("D:\Barcode Images\BarcodeByIronBarcode.png")
$vbLabelText $csharpLabel
Code-barres généré à l'aide d'IronBarcode
Le temps d'exécution nécessaire pour générer un code-barres à l'aide d'IronBarcode est le suivant :
Temps de génération des codes-barres d'IronBarcode
Il faut 3756 ms ou 3,76 sec pour générer un code-barres.
Générer un code-barres à l'aide de QrCoder
Il convient de noter que la bibliothèque QrCoder ne permet pas de créer des codes-barres. Par conséquent, si vous devez créer des codes-barres, IronBarcode est la meilleure option.
En ce qui concerne la lecture des codes QR, voyons quelle bibliothèque est la meilleure option.
Lire un code QR avec IronBarcode
Le code suivant permet de lire un code QR à l'aide d'IronBarcode.
BarcodeResults results = BarcodeReader.Read(@"D:\Barcode Images\QrcodeByIronBarcode.png");
if (results != null)
{
foreach (BarcodeResult result in results)
{
Console.WriteLine("Extracted text from QR Code is: "+result.Text);
}
}
BarcodeResults results = BarcodeReader.Read(@"D:\Barcode Images\QrcodeByIronBarcode.png");
if (results != null)
{
foreach (BarcodeResult result in results)
{
Console.WriteLine("Extracted text from QR Code is: "+result.Text);
}
}
Dim results As BarcodeResults = BarcodeReader.Read("D:\Barcode Images\QrcodeByIronBarcode.png")
If results IsNot Nothing Then
For Each result As BarcodeResult In results
Console.WriteLine("Extracted text from QR Code is: " & result.Text)
Next result
End If
$vbLabelText $csharpLabel
IronBarcode renvoie un Enumerable comme résultat de la lecture des codes QR. Nous devons parcourir en boucle le Enumerable pour récupérer chaque résultat. Cette fonction est utile pour lire des codes QR à partir d'un document ou d'une image comportant plusieurs codes QR.
Le temps nécessaire à IronBarcode pour lire/scannériser tous les codes QR d'un document
Il faut 3136 ms ou 3,1 secondes avec IronBarcode.
Lire un code QR avec QrCoder
La bibliothèque QrCoder ne permet pas de lire ou de scanner un code QR.
Lire un code-barres avec IronBarcode
Le code suivant scanne le code-barres à l'aide d'IronBarcode.
BarcodeResults results = BarcodeReader.Read(@"D:\Barcode Images\BarcodeByIronBarcode.png");
if (results != null)
{
foreach (BarcodeResult result in results)
{
Console.WriteLine("Text Extracted from Barcode is: " + result.Text);
}
}
BarcodeResults results = BarcodeReader.Read(@"D:\Barcode Images\BarcodeByIronBarcode.png");
if (results != null)
{
foreach (BarcodeResult result in results)
{
Console.WriteLine("Text Extracted from Barcode is: " + result.Text);
}
}
Dim results As BarcodeResults = BarcodeReader.Read("D:\Barcode Images\BarcodeByIronBarcode.png")
If results IsNot Nothing Then
For Each result As BarcodeResult In results
Console.WriteLine("Text Extracted from Barcode is: " & result.Text)
Next result
End If
$vbLabelText $csharpLabel
IronBarcode renvoie Enumerable comme résultat de la lecture des codes-barres. Nous devons le parcourir en boucle pour obtenir chaque résultat. Il est utile pour lire les codes-barres d'un document ou d'une image qui contient plus d'un code-barres.
La sortie générée par le code ci-dessus est la suivante :
Le temps nécessaire à IronBarcode pour scanner un code-barres contenu dans un PDF ou une image
Lire un code-barres avec QrCoder
La bibliothèque QrCoder ne permet pas de lire ou de scanner les codes QR.
Examinons maintenant les options de licence des deux bibliothèques.
Licences
Licences pour IronBarcode
IronBarcode est gratuit pour le développement. Cependant, il nécessite une licence pour être déployé en dehors de l'environnement de développement Visual Studio. Le prix des licences est compris entre $749 et $2999(USD). Vous pouvez bénéficier d'une réduction si vous achetez l'ensemble des documentsIron Suite.
Consultez la [page de licence] d'IronBarcode (/csharp/barcode/licensing/) pour plus d'informations sur les licences disponibles.
Licences pour QrCoder
QrCoder est un logiciel libre et ne nécessite donc aucune licence. Vous êtes libre de l'utiliser dans n'importe quel type d'environnement. Vous pouvez également contribuer à son code source si vous aimez le développement open-source.
Quand utiliser QrCoder
Si nous n'avons besoin que de la fonctionnalité de génération de codes QR, QRCoder est la meilleure option à utiliser car il est gratuit et ne nécessite aucun paiement ou frais d'abonnement.
Quand utiliser IronBarcode ?
IronBarcode est une excellente option lorsque nous avons besoin de fonctionnalités allant au-delà de la génération de codes QR, comme par exemple :
Lecture de codes-barres simples ou multiples et de codes QR à partir d'images ou de PDF.
Correction de l'image pour l'inclinaison, l'orientation, le bruit, la faible résolution, le contraste, etc.
Créer des codes-barres et les appliquer à des images ou à des documents PDF.
Intégration de codes-barres dans des documents HTML.
Stylisation des codes-barres et ajout d'un texte d'annotation.
Rédaction de codes QR permettant d'ajouter des logos, des couleurs et un alignement QR avancé.
Résumé
Le tableau ci-dessous compare IronBarcode et QrCoder.
Comparaison côte à côte d'IronBarcode et de QrCoder
Conclusion
IronBarcode for .NET permet aux développeurs de lire et d'écrire des codes-barres et des codes QR dans leurs applications .NET en utilisant une seule ligne de code. La bibliothèque prend en charge la plupart des normes relatives aux codes-barres et aux codes QR, y compris 39/93/128, UPC A/E, EAN 8/13 et QR, entre autres. La bibliothèque pré-traite automatiquement les images de codes-barres et offre une correction de la rotation, du bruit, de la distorsion et de l'inclinaison afin d'améliorer la vitesse et la précision. IronBarcode est compatible avec les systèmes 32 et 64 bits, tous les langages .NET et diverses plateformes, notamment les applications de bureau, de console, de cloud, ainsi que les applications mobiles et web. Il permet également aux développeurs d'écrire des codes-barres et des codes QR pour les documents PDF, JPG, TIFF, GIF, BMP, PNG et HTML, et de modifier la couleur, la taille, la rotation et la qualité du texte. La bibliothèque est sécurisée et n'utilise pas de services web ni n'envoie de données sur Internet. IronBarcode est disponible pour un essai gratuit et offre trois options de licence, dont une version License Lite pour un usage individuel, un package Professional pour des équipes de 10 développeurs maximum, et un package Unlimited pour les entreprises.
QRCoder est une bibliothèque C# .NET qui génère des codes C# basés sur la norme ISO/IEC 18004 sans dépendre d'autres bibliothèques. Il offre plusieurs classes de rendu de code QR, dont QRCode, ArtQRCode, AsciiQRCode, et d'autres. Cependant, tous les moteurs de rendu ne sont pas disponibles sur tous les Framework NET, et les versions .NET Standard/.NET >=5.0 présentent certaines contraintes. QRCoder est gratuit et ne nécessite pas de licence.
IronBarcode est plus polyvalent que QRCoder car il prend en charge toutes les versions du Framework .NET, dispose d'un plus large éventail de fonctionnalités et offre une couverture SaaS et OEM Redistribution. IronBarcode fournit également une documentation complète et une assistance 24/7, ce qui n'est pas le cas de QRCoder. IronBarcode est soumis à des frais de licence, mais ceux-ci sont raisonnables compte tenu des fonctionnalités et de l'assistance qu'il offre.
IronBarcode est une bibliothèque développée parIron Softwarequi propose également d'autres bibliothèques utiles, notammentIronPDF, IronXL, IronOCRetIronWebscraper. Acheter la version complèteIron Suite pour obtenir les cinq produits à une réduction remarquable.
En résumé, IronBarcode est le mieux adapté à ceux qui ont besoin de travailler à la fois avec des codes-barres et des codes QR et qui souhaitent créer un générateur de codes-barres, un générateur de codes QR, un lecteur de codes-barres et un lecteur de codes QR. D'autre part, QRCoder convient à ceux qui ont seulement besoin de créer un générateur de code QR.
Avant de devenir ingénieur logiciel, Kannapat a obtenu un doctorat en ressources environnementales à l'université d'Hokkaido au Japon. Tout en poursuivant ses études, Kannapat est également devenu membre du Vehicle Robotics Laboratory, qui fait partie du Department of Bioproduction Engineering (département d'ingénierie de la bioproduction). En 2022, il a mis à profit ses compétences en C# pour rejoindre l'équipe d'ingénieurs d'Iron Software, où il se concentre sur IronPDF. Kannapat apprécie son travail car il apprend directement auprès du développeur qui écrit la majeure partie du code utilisé dans IronPDF. Outre l'apprentissage par les pairs, Kannapat apprécie l'aspect social du travail chez Iron Software. Lorsqu'il n'écrit pas de code ou de documentation, Kannapat peut généralement être trouvé en train de jouer sur sa PS5 ou de revoir The Last of Us.
< PRÉCÉDENT La bibliothèque de codes QR de ZXing.org et IronBarcode : Une comparaison complète
SUIVANT > Comparaison entre ZXing Decoder et IronBarcode
Des millions d'ingénieurs dans le monde entier lui font confiance
Réservez une démo en direct gratuite
Réservez une démonstration personnelle de 30 minutes.
Pas de contrat, pas de détails de carte, pas d'engagements.
Voici ce à quoi vous pouvez vous attendre :
Une démonstration en direct de notre produit et de ses principales fonctionnalités
Obtenez des recommandations de fonctionnalités spécifiques au projet
Toutes vos questions trouvent réponse pour vous assurer de disposer de toutes les informations dont vous avez besoin. (Aucune obligation de votre part.)
CHOISIR L'HEURE
VOS INFORMATIONS
Réservez votre gratuit Démonstration en direct
Fiable par plus de 2 millions d'ingénieurs dans le monde entier