C&num ; Générateur de code QR pour .NET

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

par Jennifer Wright

Comme vous l'avez peut-être lu dans le tutoriel d'introduction sur la création d'un code-barres, la création, le style et l'exportation de codes-barres sous forme d'images avec IronBarcode sont incroyablement simples et peuvent souvent être réalisés en une seule ligne de code.

Dans cet exemple, nous examinerons plus en détail les codes QR, qui sont de plus en plus populaires dans les applications industrielles et dans le commerce de détail.

Installer la bibliothèque du générateur de code QR dans C&num ;

Commencez à utiliser IronBarcode dans votre projet dès aujourd'hui avec un essai gratuit.

Première étape :
green arrow pointer

Avant de commencer, nous devons installer le programme Code à barres Paquet NuGet.

Install-Package BarCode

https://www.nuget.org/packages/BarCode/ En guise d'alternative, le IronBarcode.Dll peut être téléchargé et ajouté à votre projet en tant que référence à partir de [.NET Barcode DLL].

Importation de NameSpaces

Pour ce tutoriel, nous devons nous assurer que nos fichiers de classe font référence à IronBarcode ainsi qu'à certains assemblages normaux du système.

using IronBarCode;
using System;
using System.Drawing;
using System.Linq;
using IronBarCode;
using System;
using System.Drawing;
using System.Linq;
Imports IronBarCode
Imports System
Imports System.Drawing
Imports System.Linq
VB   C#


Créer un code QR avec 1 ligne de code

Notre premier exemple montre comment créer un code-barres standardisé avec un texte simple, un diamètre carré de 500 pixels, avec une correction d'erreur moyenne.

:path=/static-assets/barcode/content-code-examples/tutorials/csharp-qr-code-generator-1.cs
using IronBarCode;

// Generate a Simple BarCode image and save as PDF
QRCodeWriter.CreateQrCode("hello world", 500, QRCodeWriter.QrErrorCorrectionLevel.Medium).SaveAsPng("MyQR.png");
Imports IronBarCode

' Generate a Simple BarCode image and save as PDF
QRCodeWriter.CreateQrCode("hello world", 500, QRCodeWriter.QrErrorCorrectionLevel.Medium).SaveAsPng("MyQR.png")
VB   C#

La correction d'erreur nous permet de définir la facilité avec laquelle un code QR sera lu dans des circonstances réelles. Des niveaux de correction d'erreur plus élevés créent des codes QR plus grands, avec plus de pixels et plus de complexité.

C# Créer une image de code QR

Dans le deuxième exemple, nous examinerons un cas d'utilisation dans lequel une entreprise souhaite ajouter un logo à son code QR, ce qui est très courant de nos jours. En utilisant la méthode QRCodeWriter.CreateQRCodeWithLogo, dans l'exemple de code ci-dessous, vous pouvez voir à quel point c'est facile.

:path=/static-assets/barcode/content-code-examples/tutorials/csharp-qr-code-generator-2.cs
using IronBarCode;
using IronSoftware.Drawing;

// You may add styling with color, logo images or branding:
QRCodeLogo qrCodeLogo = new QRCodeLogo("visual-studio-logo.png");
GeneratedBarcode myQRCodeWithLogo = QRCodeWriter.CreateQrCodeWithLogo("https://ironsoftware.com/", qrCodeLogo);
myQRCodeWithLogo.ResizeTo(500, 500).SetMargins(10).ChangeBarCodeColor(Color.DarkGreen);

// Logo will automatically be sized appropriately and snapped to the QR grid.
myQRCodeWithLogo.SaveAsPng("myQRWithLogo.png");
Imports IronBarCode
Imports IronSoftware.Drawing

' You may add styling with color, logo images or branding:
Private qrCodeLogo As New QRCodeLogo("visual-studio-logo.png")
Private myQRCodeWithLogo As GeneratedBarcode = QRCodeWriter.CreateQrCodeWithLogo("https://ironsoftware.com/", qrCodeLogo)
myQRCodeWithLogo.ResizeTo(500, 500).SetMargins(10).ChangeBarCodeColor(Color.DarkGreen)

' Logo will automatically be sized appropriately and snapped to the QR grid.
myQRCodeWithLogo.SaveAsPng("myQRWithLogo.png")
VB   C#

Cet exemple ajoute le logo Visual Studio au code-barres. Il le dimensionne automatiquement à une taille appropriée où le code pur est encore lisible et aligne ce logo sur la grille carrée du code QR, de manière à ce qu'il ait l'air approprié. La ligne de code suivante colore le code-barres en vert foncé. Cependant, il ne décolore pas le logo.

C# Créer un code QR avec une image de logo

Enregistrer en tant qu'image PDF ou HTML

Enfin, nous enregistrons ce QR au format PDF. La dernière ligne de code ouvre le PDF dans votre navigateur PDF par défaut.

:path=/static-assets/barcode/content-code-examples/tutorials/csharp-qr-code-generator-3.cs
using IronBarCode;

// You may add styling with color, logo images or branding:
QRCodeLogo qrCodeLogo = new QRCodeLogo("visual-studio-logo.png");
GeneratedBarcode myQRCodeWithLogo = QRCodeWriter.CreateQrCodeWithLogo("https://ironsoftware.com/", qrCodeLogo);

myQRCodeWithLogo.ChangeBarCodeColor(System.Drawing.Color.DarkGreen);

// Save as PDF
myQRCodeWithLogo.SaveAsPdf("MyQRWithLogo.pdf");

// Also Save as HTML
myQRCodeWithLogo.SaveAsHtmlFile("MyQRWithLogo.html");
Imports IronBarCode

' You may add styling with color, logo images or branding:
Private qrCodeLogo As New QRCodeLogo("visual-studio-logo.png")
Private myQRCodeWithLogo As GeneratedBarcode = QRCodeWriter.CreateQrCodeWithLogo("https://ironsoftware.com/", qrCodeLogo)

myQRCodeWithLogo.ChangeBarCodeColor(System.Drawing.Color.DarkGreen)

' Save as PDF
myQRCodeWithLogo.SaveAsPdf("MyQRWithLogo.pdf")

' Also Save as HTML
myQRCodeWithLogo.SaveAsHtmlFile("MyQRWithLogo.html")
VB   C#

Vérification des codes QR

Lorsque nous ajoutons des logos aux codes QR et que nous changeons de couleur, nous voulons nous assurer que notre code QR reste lisible.

En utilisant l'option GeneratedBarcode.Verify(), nous pouvons tester si notre code-barres est toujours lisible.

Dans l'exemple de code suivant, nous verrons que le fait de passer un code QR en bleu clair le rend en fait illisible. Nous détectons ce problème dans le code et préférons le bleu foncé.

:path=/static-assets/barcode/content-code-examples/tutorials/csharp-qr-code-generator-4.cs
using IronBarCode;
using IronSoftware.Drawing;
using System;

// Verifying QR Codes
QRCodeLogo qrCodeLogo = new QRCodeLogo("visual-studio-logo.png");
GeneratedBarcode MyVerifiedQR = QRCodeWriter.CreateQrCodeWithLogo("https://ironsoftware.com/", qrCodeLogo);

MyVerifiedQR.ChangeBarCodeColor(System.Drawing.Color.LightBlue);

if (!MyVerifiedQR.Verify())
{
    Console.WriteLine("\t LightBlue is not dark enough to be read accurately.  Lets try DarkBlue");
    MyVerifiedQR.ChangeBarCodeColor(Color.DarkBlue);
}
MyVerifiedQR.SaveAsHtmlFile("MyVerifiedQR.html");

// open the barcode html file in your default web browser
System.Diagnostics.Process.Start("MyVerifiedQR.html");
Imports Microsoft.VisualBasic
Imports IronBarCode
Imports IronSoftware.Drawing
Imports System

' Verifying QR Codes
Private qrCodeLogo As New QRCodeLogo("visual-studio-logo.png")
Private MyVerifiedQR As GeneratedBarcode = QRCodeWriter.CreateQrCodeWithLogo("https://ironsoftware.com/", qrCodeLogo)

MyVerifiedQR.ChangeBarCodeColor(System.Drawing.Color.LightBlue)

If Not MyVerifiedQR.Verify() Then
	Console.WriteLine(vbTab & " LightBlue is not dark enough to be read accurately.  Lets try DarkBlue")
	MyVerifiedQR.ChangeBarCodeColor(Color.DarkBlue)
End If
MyVerifiedQR.SaveAsHtmlFile("MyVerifiedQR.html")

' open the barcode html file in your default web browser
System.Diagnostics.Process.Start("MyVerifiedQR.html")
VB   C#

Les dernières lignes de code exportent le code QR sous la forme d'un fichier HTML autonome sans aucun actif, puis ouvrent ce fichier HTML dans votre navigateur par défaut.

C# lire et écrire QR

Lecture et écriture de données binaires

Les codes QR sont un excellent format pour traiter les données binaires. Parfois, les données binaires sont simplement plus efficaces en termes d'espace ou plus appropriées que le texte.

Dans cet exemple, nous allons encoder des données binaires à partir d'une chaîne, les écrire dans un code-barres au format QR, puis les relire sous la forme d'un tableau de bits de données binaires. Vous noterez que cette caractéristique n'est pas commune à de nombreuses bibliothèques de codes-barres, ce qui rend IronBarcode unique en son genre.

:path=/static-assets/barcode/content-code-examples/tutorials/csharp-qr-code-generator-5.cs
using IronBarCode;
using System;
using System.Linq;

// Create Some Binary Data - This example equally well for Byte[] and System.IO.Stream
byte[] BinaryData = System.Text.Encoding.UTF8.GetBytes("https://ironsoftware.com/csharp/barcode/");

// WRITE QR with Binary Content
QRCodeWriter.CreateQrCode(BinaryData, 500).SaveAsImage("MyBinaryQR.png");

// READ QR with Binary Content
var MyReturnedData = BarcodeReader.Read("MyBinaryQR.png").First();
if (BinaryData.SequenceEqual(MyReturnedData.BinaryValue))
{
    Console.WriteLine("\t Binary Data Read and Written Perfectly");
}
else
{
    throw new Exception("Corrupted Data");
}
Imports Microsoft.VisualBasic
Imports IronBarCode
Imports System
Imports System.Linq

' Create Some Binary Data - This example equally well for Byte[] and System.IO.Stream
Private BinaryData() As Byte = System.Text.Encoding.UTF8.GetBytes("https://ironsoftware.com/csharp/barcode/")

' WRITE QR with Binary Content
QRCodeWriter.CreateQrCode(BinaryData, 500).SaveAsImage("MyBinaryQR.png")

' READ QR with Binary Content
Dim MyReturnedData = BarcodeReader.Read("MyBinaryQR.png").First()
If BinaryData.SequenceEqual(MyReturnedData.BinaryValue) Then
	Console.WriteLine(vbTab & " Binary Data Read and Written Perfectly")
Else
	Throw New Exception("Corrupted Data")
End If
VB   C#
C# lire et écrire des données binaires sous forme de QR Code

En résumé, leBibliothèque C# pour les codes-barres est spécialement conçu pour l'utilisation des codes QR dans le monde réel. Non seulement il lit les codes QR rapidement et avec précision, mais il nous permet de les styliser, d'ajouter des logos, de vérifier les codes-barres et de les encoder avec des données binaires.

Lire les codes QR

Pour vous éviter de sauter d'un tutoriel à l'autre, j'ajouterai un exemple de code pour ma méthode préférée de lecture des codes QR en utilisant IronBarcode.

:path=/static-assets/barcode/content-code-examples/tutorials/csharp-qr-code-generator-6.cs
using IronBarCode;
using System;
using System.Linq;

BarcodeResults result = BarcodeReader.Read("QR.png", new BarcodeReaderOptions() { ExpectBarcodeTypes = BarcodeEncoding.QRCode });
if (result != null)
{
    Console.WriteLine(result.First().Value);
}
Imports IronBarCode
Imports System
Imports System.Linq

Private result As BarcodeResults = BarcodeReader.Read("QR.png", New BarcodeReaderOptions() With {.ExpectBarcodeTypes = BarcodeEncoding.QRCode})
If result IsNot Nothing Then
	Console.WriteLine(result.First().Value)
End If
VB   C#

Il existe également un formulaire plus avancé qui permet au développeur d'exercer un plus grand contrôle :

:path=/static-assets/barcode/content-code-examples/tutorials/csharp-qr-code-generator-7.cs
using IronBarCode;
using System;
using System.Linq;

BarcodeReaderOptions options = new BarcodeReaderOptions
{
    Speed = ReadingSpeed.Faster,
    ExpectMultipleBarcodes = false,
    ExpectBarcodeTypes = BarcodeEncoding.All,
    Multithreaded = false,
    MaxParallelThreads = 0,
    CropArea = null,
    UseCode39ExtendedMode = false,
    RemoveFalsePositive = false,
    ImageFilters = null
};

BarcodeResults result = BarcodeReader.Read("QR.png", options);
if (result != null)
{
    Console.WriteLine(result.First().Value);
}
Imports IronBarCode
Imports System
Imports System.Linq

Private options As New BarcodeReaderOptions With {
	.Speed = ReadingSpeed.Faster,
	.ExpectMultipleBarcodes = False,
	.ExpectBarcodeTypes = BarcodeEncoding.All,
	.Multithreaded = False,
	.MaxParallelThreads = 0,
	.CropArea = Nothing,
	.UseCode39ExtendedMode = False,
	.RemoveFalsePositive = False,
	.ImageFilters = Nothing
}

Private result As BarcodeResults = BarcodeReader.Read("QR.png", options)
If result IsNot Nothing Then
	Console.WriteLine(result.First().Value)
End If
VB   C#

Aller de l'avant

Pour en savoir plus sur cet exemple et sur le travail avecCodes QR en C#nous vous encourageons à le forker sur notre page GitHub ou à télécharger le code source depuis notre site.

Téléchargement du code source

Téléchargez ce tutoriel et cette DLL de génération de code QR.

Documentation complémentaire

Vous pouvez également trouver leQRCodeWriter etBarcodeReader dans la référence API qui nous intéresse.

Ils documentent l'ensemble des fonctionnalités d'IronBarcode, un système d'information sur la santéVB.NET Barcode Generator (Générateur de codes-barres)qui ne peuvent pas être regroupés dans un seul tutoriel.

La bibliothèque de codes-barres .NET peut révolutionner la manière de connecter les catalogues de produits en ligne et hors ligne en produisant un identifiant unique à la fois pour un produit et pour son code de production physique spécifique par lot

Jennifer Wright

Chef de l'architecture des applications

Jenny dirige l'architecture des produits logiciels au sein du service de développement des produits numériques d'un géant pharmaceutique. L'équipe de Jenny utilise IronBarcode pour connecter les catalogues de produits en ligne et hors ligne.