C# QR Code Generator für .NET

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

von Jennifer Wright

Wie Sie vielleicht im Einführungslehrgang zum Erstellen eines Barcodes gelesen haben, ist das Erstellen, Gestalten und Exportieren von Barcodes als Bilder mit IronBarcode unglaublich einfach und kann oft mit einer einzigen Codezeile erreicht werden.

In diesem Beispiel werden wir uns näher mit QR-Codes befassen, die in der Industrie und auch im Einzelhandel immer beliebter werden.

QR Code Generator Bibliothek in C# installieren;

Beginnen Sie noch heute mit der Verwendung von IronBarcode in Ihrem Projekt mit einer kostenlosen Testversion.

Erster Schritt:
green arrow pointer

Bevor wir beginnen, müssen wir die BarCode NuGet-Paket.

Install-Package BarCode

https://www.nuget.org/packages/BarCode/ Als Alternative kann die IronBarCode.Dll kann heruntergeladen werden und in Ihr Projekt als Referenz von [.NET Strichcode-DLL].

Importieren von NameSpaces

Für dieses Tutorial müssen wir sicherstellen, dass unsere Klassendateien IronBarCode und auch einige normale System-Assemblies referenzieren.

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#


Erstellen Sie einen QR-Code mit 1 Zeile Code

Unser erstes Beispiel zeigt uns, wie wir einen standardisierten Barcode mit einem einfachen Text, einem quadratischen Durchmesser von 500 Pixeln und einer mittleren Fehlerkorrektur erstellen können.

: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#

Mit der Fehlerkorrektur können wir festlegen, wie leicht ein QR-Code unter realen Bedingungen zu lesen ist. Höhere Fehlerkorrekturstufen erzeugen größere QR-Codes mit mehr Pixeln und mehr Komplexität.

C# QR Code Bild erstellen

Hinzufügen eines Logos

Im zweiten Beispiel betrachten wir einen Anwendungsfall, bei dem ein Unternehmen seinem QR-Code ein Logo hinzufügen möchte, was heutzutage sehr häufig vorkommt. Mit der Methode QRCodeWriter.CreateQRCodeWithLogo können Sie im folgenden Codebeispiel sehen, wie einfach dies ist.

: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#

In diesem Beispiel wird dem Barcode das Visual Studio-Logo hinzugefügt. Es wird automatisch auf eine geeignete Größe gebracht, bei der der reine Code noch lesbar ist, und das Logo wird an das quadratische Raster des QR-Codes angepasst, so dass es angemessen aussieht. Die nächste Codezeile färbt den Strichcode dunkelgrün. Das Logo wird dadurch jedoch nicht verfärbt.

C# QR-Code mit Logobild erstellen

Speichern als Bild, PDF oder HTML

Schließlich speichern wir diesen QR als PDF. Die letzte Codezeile öffnet die PDF-Datei in Ihrem Standard-PDF-Browser, damit Sie es bequemer haben.

: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#

QR-Codes verifizieren

Beim Hinzufügen von Logos zu QR-Codes und beim Ändern von Farben wollen wir sicherstellen, dass unser QR-Code immer noch lesbar ist.

Durch die Verwendung der Funktion `GeneratedBarcode.Verify()methode können wir testen, ob unser Barcode noch lesbar ist oder nicht.

Im folgenden Code-Beispiel sehen wir, dass die Änderung eines QR-Codes in hellblau ihn tatsächlich unlesbar macht. Wir erkennen dies im Code und bevorzugen Dunkelblau.

: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#

Die letzten Codezeilen exportieren den QR-Code als eigenständige HTML-Datei ohne Elemente und öffnen diese HTML-Datei dann in Ihrem Standardbrowser.

C# lesen und schreiben QR

Lesen und Schreiben von Binärdaten

QR-Codes sind ein hervorragendes Format für den Umgang mit binären Daten. Manchmal sind binäre Daten einfach platzsparender oder besser geeignet als Text.

In diesem Beispiel werden wir einige Binärdaten aus einer Zeichenkette kodieren, diese in einen Barcode im QR-Format schreiben und dann als Bit-Array von Binärdaten zurücklesen. Sie werden feststellen, dass diese Funktion nicht in vielen Barcode-Bibliotheken zu finden ist, was IronBarcode in dieser Eigenschaft einzigartig macht.

: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# Lesen und Schreiben von Binärdaten als QR Code

Zusammenfassend lässt sich sagen, dass dieBarcode C# Bibliothek wurde speziell für die Verwendung von QR-Codes in der Praxis entwickelt. Es liest QR-Codes nicht nur schnell und genau, sondern ermöglicht uns auch, sie zu gestalten, Logos hinzuzufügen, Barcodes zu überprüfen und sie mit binären Daten zu kodieren.

QR-Codes lesen

Damit Sie nicht zwischen den Tutorials hin- und herspringen müssen, füge ich ein Codebeispiel für meine Lieblingsmethode zum Lesen von QR-Codes mit IronBarcode hinzu.

: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#

Es gibt auch eine fortgeschrittenere Form mit mehr Kontrolle durch den Entwickler:

: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#

Vorwärts bewegen

Um mehr über dieses Beispiel und die Arbeit mitQR-Codes in C#wenn Sie den Quellcode nicht kennen, empfehlen wir Ihnen, ihn auf unserer GitHub-Seite zu forken oder den Quellcode von unserer Website herunterzuladen.

Quellcode-Downloads

Laden Sie dieses C# QR Code Generator Tutorial und DLL herunter.

Weitere Dokumentation

Vielleicht finden Sie auch dieQRCodeWriter undBarcodeReader klassen innerhalb der API-Referenz von Interesse.

Sie dokumentieren den vollständigen Funktionsumfang von IronBarcode, einemVB.NET Strichcode-Generatordie unmöglich in ein einziges Lernprogramm gepackt werden können.

Die .NET Barcode-Bibliothek kann die Verbindung von Online- und Offline-Produktkatalogen revolutionieren, indem sie einen eindeutigen Identifikator sowohl für ein Produkt als auch für seinen spezifischen physischen Chargenproduktionscode erzeugt

Jennifer Wright

Leiter der Anwendungsarchitektur

Jenny leitet die Software-Produktarchitektur in der Abteilung für digitale Produktentwicklung eines Pharmariesen. Jennys Team nutzt IronBarcode, um Online- und Offline-Produktkataloge zu verbinden.