Codes-barres et QR dans les applications C# et VB.NET
La lecture et l'écriture de codes-barres en C# et dans tous les autres langages .NET est un processus facile avec notre bibliothèque logicielle IronBarcode.
Installer IronBarcode
La première étape du parcours consistera à installer IronBarcode, ce qui peut être fait en téléchargeant depuis NuGet ou en téléchargeant le DLL.
Pour installer le package NuGet IronBarcode, vous pouvez utiliser le gestionnaire de packages NuGet pour Visual Studio :
Install-Package BarCode
Vous pouvez également installer avec le CLI dotnet :
dotnet add package BarCode
Vous pouvez trouver plus d'informations sur le package NuGet sur le site web NuGet.
Lecture d'un code-barres ou d'un code QR
La lecture d'un code-barres ne nécessite qu'une seule ligne de code avec IronBarcode.
:path=/static-assets/barcode/content-code-examples/get-started/get-started-1.cs
using IronBarCode;
BarcodeResults results = BarcodeReader.Read("QuickStart.jpg");
if (results != null)
{
foreach (BarcodeResult result in results)
{
Console.WriteLine(result.Text);
}
}
Imports IronBarCode
Private results As BarcodeResults = BarcodeReader.Read("QuickStart.jpg")
If results IsNot Nothing Then
For Each result As BarcodeResult In results
Console.WriteLine(result.Text)
Next result
End If
Avec cette ligne de code, vous avez la capacité de détecter et de scanner tous les types de codes-barres à partir du document d'entrée avec des performances exceptionnelles—tout ce dont vous avez besoin en une étape ! Cette méthode prend en charge une large gamme de formats d'image, y compris des images comme JPEG, PNG et BMP, ainsi que des PDF et des formats multi-cadres tels que GIF et TIFF. Pour ceux qui ont besoin de plus de vitesse, d'une utilisation optimisée de la mémoire ou d'une précision de lecture améliorée, des options de configuration personnalisables sont disponibles pour affiner les performances selon vos besoins spécifiques.
Pour améliorer la vitesse de lecture, vous pouvez ajouter un objet BarcodeReaderOptions
avec le paramètre Speed
réglé. Par défaut, il est réglé sur Balanced
, mais il existe également une option Faster
qui ignore certaines vérifications de lecture de codes-barres, telles que la vérification des couleurs inversées ou de la rotation des codes-barres.
:path=/static-assets/barcode/content-code-examples/get-started/get-started-2.cs
using IronBarCode;
BarcodeReaderOptions myOptionsExample = new BarcodeReaderOptions()
{
ExpectMultipleBarcodes = false,
ExpectBarcodeTypes = BarcodeEncoding.QRCode | BarcodeEncoding.Code128,
CropArea = new System.Drawing.Rectangle(100, 200, 300, 400),
};
BarcodeResults result = BarcodeReader.Read("QuickStart.jpg", myOptionsExample);
if (result != null)
{
Console.WriteLine(result.First().Text);
}
Imports IronBarCode
Private myOptionsExample As New BarcodeReaderOptions() With {
.ExpectMultipleBarcodes = False,
.ExpectBarcodeTypes = BarcodeEncoding.QRCode Or BarcodeEncoding.Code128,
.CropArea = New System.Drawing.Rectangle(100, 200, 300, 400)
}
Private result As BarcodeResults = BarcodeReader.Read("QuickStart.jpg", myOptionsExample)
If result IsNot Nothing Then
Console.WriteLine(result.First().Text)
End If
Vous pouvez également définir le ScanMode
sur OnlyBasicScan
pour éviter que notre algorithme de détection de code-barres ne scanne le document.
:path=/static-assets/barcode/content-code-examples/get-started/get-started-3.cs
using IronBarCode;
BarcodeResults results = BarcodeReader.Read("MultipleBarcodes.png");
// Loop through the results
foreach (BarcodeResult result in results)
{
string value = result.Value;
Bitmap img = result.BarcodeImage;
BarcodeEncoding barcodeType = result.BarcodeType;
byte[] binary = result.BinaryValue;
Console.WriteLine(result.Value);
}
Imports IronBarCode
Private results As BarcodeResults = BarcodeReader.Read("MultipleBarcodes.png")
' Loop through the results
For Each result As BarcodeResult In results
Dim value As String = result.Value
Dim img As Bitmap = result.BarcodeImage
Dim barcodeType As BarcodeEncoding = result.BarcodeType
Dim binary() As Byte = result.BinaryValue
Console.WriteLine(result.Value)
Next result
D'autres configurations à essayer consistent à spécifier les formats de code-barres à scanner, afin qu'IronBarcode n'ait pas à scanner tous les types de codes-barres, et à recadrer des régions spécifiques de l'image, de sorte qu'IronBarcode ait moins de données d'image à traiter. Il existe également une option pour prévoir plusieurs codes-barres, permettant à IronBarcode d'ignorer certains processus de détection et de décodage de plusieurs codes-barres si un seul est attendu.
:path=/static-assets/barcode/content-code-examples/get-started/get-started-4.cs
using IronBarCode;
BarcodeResults pagedResults = BarcodeReader.Read("MultipleBarcodes.pdf");
// Loop through the results
foreach (BarcodeResult result in pagedResults)
{
int pageNumber = result.PageNumber;
string value = result.Value;
Bitmap img = result.BarcodeImage;
BarcodeEncoding barcodeType = result.BarcodeType;
byte[] binary = result.BinaryValue;
Console.WriteLine(result.Value);
}
// or from a multi-page TIFF scan with image correction:
BarcodeResults multiFrameResults = BarcodeReader.Read(inputImage: "Multiframe.tiff", new BarcodeReaderOptions
{
Speed = ReadingSpeed.Detailed,
ExpectMultipleBarcodes = true,
ExpectBarcodeTypes = BarcodeEncoding.Code128,
Multithreaded = false,
RemoveFalsePositive = false,
ImageFilters = null
});
Imports IronBarCode
Private pagedResults As BarcodeResults = BarcodeReader.Read("MultipleBarcodes.pdf")
' Loop through the results
For Each result As BarcodeResult In pagedResults
Dim pageNumber As Integer = result.PageNumber
Dim value As String = result.Value
Dim img As Bitmap = result.BarcodeImage
Dim barcodeType As BarcodeEncoding = result.BarcodeType
Dim binary() As Byte = result.BinaryValue
Console.WriteLine(result.Value)
Next result
' or from a multi-page TIFF scan with image correction:
Dim multiFrameResults As BarcodeResults = BarcodeReader.Read(inputImage:= "Multiframe.tiff", New BarcodeReaderOptions With {
.Speed = ReadingSpeed.Detailed,
.ExpectMultipleBarcodes = True,
.ExpectBarcodeTypes = BarcodeEncoding.Code128,
.Multithreaded = False,
.RemoveFalsePositive = False,
.ImageFilters = Nothing
})
Écriture de codes-barres
Pour écrire des codes-barres à l'aide de IronBarcode, nous utilisons la classe BarcodeWriter
. Avec BarcodeWriter
, écrire des codes-barres est aussi simple qu'une seule ligne de code : il suffit d'entrer les données d'entrée et le format du code-barres, et c'est parti ! Vous pouvez ensuite enregistrer les données de l'image du code-barres en mémoire ou sous forme de fichier.
:path=/static-assets/barcode/content-code-examples/get-started/get-started-5.cs
using IronBarCode;
GeneratedBarcode myBarcode = BarcodeWriter.CreateBarcode("https://ironsoftware.com/csharp/barcode", BarcodeEncoding.Code128);
myBarcode.SaveAsImage("myBarcode.png");
Imports IronBarCode
Private myBarcode As GeneratedBarcode = BarcodeWriter.CreateBarcode("https://ironsoftware.com/csharp/barcode", BarcodeEncoding.Code128)
myBarcode.SaveAsImage("myBarcode.png")
Styliser les codes-barres
IronBarcode offre plusieurs options pour manipuler la représentation visuelle d'un code-barres. Les fonctionnalités prises en charge pour le style des codes-barres incluent le redimensionnement, la définition des marges dans l'image de sortie, la modification des couleurs de premier plan et d'arrière-plan, ainsi que l'ajout d'annotations.
:path=/static-assets/barcode/content-code-examples/get-started/get-started-7.cs
using IronBarCode;
GeneratedBarcode myBarcode = BarcodeWriter.CreateBarcode("https://ironsoftware.com/csharp/barcode", BarcodeEncoding.Code128);
myBarcode.AddAnnotationTextAboveBarcode("Product URL:");
myBarcode.AddBarcodeValueTextBelowBarcode();
myBarcode.SetMargins(100);
myBarcode.ChangeBarCodeColor(IronSoftware.Drawing.Color.Purple);
// All major image formats supported as well as PDF and HTML
myBarcode.SaveAsPng("myBarcode.png");
Imports IronBarCode
Private myBarcode As GeneratedBarcode = BarcodeWriter.CreateBarcode("https://ironsoftware.com/csharp/barcode", BarcodeEncoding.Code128)
myBarcode.AddAnnotationTextAboveBarcode("Product URL:")
myBarcode.AddBarcodeValueTextBelowBarcode()
myBarcode.SetMargins(100)
myBarcode.ChangeBarCodeColor(IronSoftware.Drawing.Color.Purple)
' All major image formats supported as well as PDF and HTML
myBarcode.SaveAsPng("myBarcode.png")
Exportation de codes-barres en HTML
Il existe également la fonctionnalité pratique d'exporter du HTML à partir d'un code-barres généré. Il peut exporter un code-barres en tant que document HTML autonome sans ressources externes, en tant que balise HTML autonome ou en tant qu'URI de données.
:path=/static-assets/barcode/content-code-examples/get-started/get-started-8.cs
using IronBarCode;
QRCodeWriter.CreateQrCode("https://ironsoftware.com", 500, QRCodeWriter.QrErrorCorrectionLevel.Medium).SaveAsPdf("MyQR.pdf");
Imports IronBarCode
QRCodeWriter.CreateQrCode("https://ironsoftware.com", 500, QRCodeWriter.QrErrorCorrectionLevel.Medium).SaveAsPdf("MyQR.pdf")
Générer des codes QR
Lors de la génération de codes QR avec IronBarcode, nous pouvons choisir d'utiliser la classe QRCodeWriter
à la place. Cette classe offre des configurations de personnalisation supplémentaires exclusives aux codes QR, telles que la définition du niveau de correction d'erreur et l'ajout d'une image au centre du QR.
:path=/static-assets/barcode/content-code-examples/get-started/get-started-9.cs
using IronBarCode;
using IronSoftware.Drawing;
QRCodeLogo qrCodeLogo = new QRCodeLogo("visual-studio-logo.png");
GeneratedBarcode myQRCodeWithLogo = QRCodeWriter.CreateQrCodeWithLogo("https://ironsoftware.com/csharp/barcode/", qrCodeLogo);
myQRCodeWithLogo.ChangeBarCodeColor(Color.DarkGreen).SaveAsPdf("MyQRWithLogo.pdf");
Imports IronBarCode
Imports IronSoftware.Drawing
Private qrCodeLogo As New QRCodeLogo("visual-studio-logo.png")
Private myQRCodeWithLogo As GeneratedBarcode = QRCodeWriter.CreateQrCodeWithLogo("https://ironsoftware.com/csharp/barcode/", qrCodeLogo)
myQRCodeWithLogo.ChangeBarCodeColor(Color.DarkGreen).SaveAsPdf("MyQRWithLogo.pdf")
Formats de codes-barres pris en charge
IronBarcode prend en charge une large variété de formats de codes-barres couramment utilisés pour la lecture et l'écriture :
- QR, Micro QR, et Rectangulaire Micro QR (rMQR) codes.
- Autres codes-barres bidimensionnels tels que Aztec, Data Matrix, MaxiCode, et PDF417.
- Codes-barres linéaires empilés tels que Databar.
- Formats de codes-barres unidimensionnels conventionnels tels que UPC-A, UPC-E, EAN-8, EAN-13, Codabar, ITF, MSI, et Plessey.
Pourquoi choisir IronBarcode ?
IronBarcode offre une API conviviale et facile à utiliser pour les développeurs afin de lire et écrire des codes-barres pour .NET, optimisée pour l'exactitude, la précision et la rapidité dans des cas d'utilisation réels.
La classe BarcodeWriter
, par exemple, validera et corrigera automatiquement les « checksums » sur les codes-barres UPCA et UPCE. Il met également à zéro les numéros qui sont trop courts pour un format numérique spécifique. Si vos données ne sont pas adaptées au format de données spécifié, IronBarcode indiquera au développeur un format de code-barres plus approprié qu'il pourrait utiliser.
IronBarcode excelle à la fois dans les domaines de la lecture des codes-barres à partir de documents et de la lecture des codes-barres à partir d'images prises dans le monde réel. La bibliothèque comprend un certain nombre de techniques de prétraitement d'image pour maximiser la probabilité de lecture des codes-barres, telles que la rotation automatique et la réduction du bruit de l'image.
Aller de l'avant
Pour tirer le meilleur parti d'IronBarcode, nous vous encourageons à lire les tutoriels dans cette section de documentation et à nous rendre visite sur GitHub.