Test in einer Live-Umgebung
Test in der Produktion ohne Wasserzeichen.
Funktioniert überall, wo Sie es brauchen.
Die Erstellung von QR-Codes in C#-Anwendungen ist eine häufige Anforderung für Entwickler, insbesondere für Anwendungen, die Produktidentifikation, Ticketing oder den einfachen Austausch von URLs und anderen Daten beinhalten. Es gibt mehrere Bibliotheken, um QR-Codes in C# zu erzeugen. Zwei bemerkenswerte Optionen sind QRCoder und IronQR. In diesem Artikel werden wir beide untersuchen und ihre Fähigkeiten, Benutzerfreundlichkeit, Leistung und andere Faktoren vergleichen, die für Entwickler relevant sind, die mit .NET 6 arbeiten.
Erstellen Sie ein neues Visual Studio-Projekt, um einen QR-Code zu generieren
Installieren Sie QRCoder und IronQR NuGet-Pakete zum Vergleich
QR-Codes mit QRCoder und IronQR erstellen
QRCoder ist eine in C# geschriebene Open-Source-Bibliothek und eine QR-Code-Implementierung, mit der Sie in jeder .NET-Anwendung QR-Codes gemäß ISO/IEC 18004 erzeugen können. Es handelt sich um eine leichtgewichtige und einfach zu verwendende Bibliothek ohne Abhängigkeiten von anderen Bibliotheken oder Netzwerkstapeln.
Hier sind die wichtigsten Funktionen und Vorteile von QRCoder:
C# QRCoder bietet eine einfache und intuitive API, die es Entwicklern leicht macht, QR-Codes/ QR-Code-Text mit minimalem Aufwand zu erzeugen. Dank seiner Einfachheit können Entwickler aller Qualifikationsstufen die QR-Code-Generierung schnell in ihre Projekte integrieren.
Eine der herausragenden Eigenschaften von QRCoder ist die Möglichkeit, QR-Codes an die jeweiligen Anforderungen anzupassen. Die Entwickler können Parameter wie Fehlerkorrekturstufe, Größe und Farbe anpassen und sogar Logos oder Bilder in den QR-Code einbetten.
QRCoder unterstützt verschiedene Kodierungsformate, die es Entwicklern ermöglichen, verschiedene Arten von Daten in QR-Codes zu kodieren. Egal, ob es sich um einfachen Text, URLs, Kontaktinformationen oder Wi-Fi-Anmeldedaten handelt, QRCoder kann eine Vielzahl von Datenformaten verarbeiten.
Die von C# QRCoder erzeugten QR-Codes sind von hoher Qualität und gewährleisten Lesbarkeit und Zuverlässigkeit auf verschiedenen Geräten und unter verschiedenen Scanbedingungen. Diese Zuverlässigkeit ist entscheidend für Anwendungen, bei denen QR-Codes als Brücke zwischen physischen und digitalen Interaktionen dienen.
C# QRCoder ist ein Open-Source-Projekt, das es Entwicklern ermöglicht, zur Entwicklung beizutragen und kontinuierliche Verbesserungen und Updates zu gewährleisten. Dieses aktive Engagement der Gemeinschaft fördert die Innovation und stellt sicher, dass die Bibliothek in der sich ständig weiterentwickelnden Technologielandschaft relevant bleibt.
IronQR ist eine leistungsstarke C# QR-Code-Bibliothek, die von Iron Software. Es ermöglicht C# Software-Ingenieuren, QR-Codes in .NET-Anwendungen und Websites zu erkennen, zu lesen und zu erstellen. Hier sind einige der wichtigsten Merkmale von IronQR:
IronQR ermöglicht hochgradig anpassbare QR-Code-Erstellung. Sie können QR-Codes mit verschiedenen Optionen erstellen, z. B. Größenänderung, Ränder, Umrandungen und Neueinfärbung.
using IronQr;
using IronSoftware.Drawing;
// Prepare a QR Code object
QrCode theQrGen = QrWriter.Write("Awesome IronQR");
// Save QR Code to memory
AnyBitmap myQrImage = theQrGen.Save();
// Save QR Code image to disk
myQrImage.SaveAs("awesome.png");
using IronQr;
using IronSoftware.Drawing;
// Prepare a QR Code object
QrCode theQrGen = QrWriter.Write("Awesome IronQR");
// Save QR Code to memory
AnyBitmap myQrImage = theQrGen.Save();
// Save QR Code image to disk
myQrImage.SaveAs("awesome.png");
Imports IronQr
Imports IronSoftware.Drawing
' Prepare a QR Code object
Private theQrGen As QrCode = QrWriter.Write("Awesome IronQR")
' Save QR Code to memory
Private myQrImage As AnyBitmap = theQrGen.Save()
' Save QR Code image to disk
myQrImage.SaveAs("awesome.png")
IronQR verwendet ein fortschrittliches Modell für maschinelles Lernen zur Erkennung von QR-Codes. Dieses Modell gewährleistet ein genaues und schnelles Lesen von QR-Codes. IronQR unterstützt lesen von QR-Codes aus verschiedenen Bildformaten, darunter JPG, PNG, SVG, bmp und mehrseitige Bilder wie gif und tiff.
using IronQr;
using IronSoftware.Drawing;
using System.Collections.Generic;
// Read QR code
var inputBmp = AnyBitmap.FromFile("awesome.png");
// Load the image into QrImageInput
QrImageInput imageInput = new QrImageInput(inputBmp);
// Create the QR Reader object
QrReader reader = new QrReader();
// Read the Input an get all embedded QR Codes
IEnumerable<QrResult> results = reader.Read(imageInput);
using IronQr;
using IronSoftware.Drawing;
using System.Collections.Generic;
// Read QR code
var inputBmp = AnyBitmap.FromFile("awesome.png");
// Load the image into QrImageInput
QrImageInput imageInput = new QrImageInput(inputBmp);
// Create the QR Reader object
QrReader reader = new QrReader();
// Read the Input an get all embedded QR Codes
IEnumerable<QrResult> results = reader.Read(imageInput);
Imports IronQr
Imports IronSoftware.Drawing
Imports System.Collections.Generic
' Read QR code
Private inputBmp = AnyBitmap.FromFile("awesome.png")
' Load the image into QrImageInput
Private imageInput As New QrImageInput(inputBmp)
' Create the QR Reader object
Private reader As New QrReader()
' Read the Input an get all embedded QR Codes
Private results As IEnumerable(Of QrResult) = reader.Read(imageInput)
Desktop: Funktioniert mit Windows-Desktop-Anwendungen (WPF UND MAUI).
Mobil: Kompatibel mit Xamarin und MAUI.
Web: Unterstützt Blazor und WebForms.
Konsole: App- und Bibliotheksumgebungen.
Sie können verschiedene Arten von Daten in QR-Codes kodieren, darunter Text, URLs, Bytes und Zahlen.
IronQR bietet detaillierte Fehlermeldungen und benutzerdefinierte Fehlerkorrekturoptionen.
IronQR genießt das Vertrauen von Millionen von Ingenieuren weltweit wegen seiner Zuverlässigkeit und Benutzerfreundlichkeit. Um mit IronQR zu beginnen, können Sie es installieren über NuGet.
Um mit dem Code zu beginnen, erstellen wir eine Visual Studio Projekt. Öffnen Sie Microsoft Visual Studio 2022 und wählen Sie die Option "Ein neues Projekt erstellen".
Wählen Sie die Vorlage für die Konsolenanwendung aus der Vorlagenliste aus
Geben Sie dann den Projektnamen und die Lösungsnamen an. Wählen Sie den Pfad zum Speichern der Projektdateien
Wählen Sie die gewünschte .NET-Version aus. Ich werde mich für das zum Zeitpunkt der Abfassung dieses Artikels aktuelle .NET 8 Framework entscheiden.
Sobald Sie auf die Schaltfläche "Erstellen" klicken, ist das Projekt erstellt und kann entwickelt werden.
Die QRCoder NuGet-Pakete können mit dem Visual Studio NuGet-Paketmanager installiert werden (siehe unten).
Oder installieren Sie es über die NuGet-Paketmanager-Konsole mit folgendem Befehl
dotnet add package QRCoder --version 1.4.3
dotnet add package QRCoder --version 1.4.3
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'dotnet add package QRCoder --version 1.4.3
Das QRCoder-NuGet-Paket ist auf der NuGet-Website hier verfügbar
Die IronQR kann auch auf ähnliche Weise mit dem Visual Studio NuGet-Paketmanager installiert werden (siehe unten).
Verwenden Sie auch in der Konsole des NuGet-Paketmanagers den folgenden Befehl
dotnet add package IronQR --version 2024.4.1
dotnet add package IronQR --version 2024.4.1
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'dotnet add package IronQR --version 2024.4.1
Die Erstellung von QR-Codes in den beiden Bibliotheken erfordert einen einfachen Code, den wir uns ansehen wollen
Der folgende Code zeigt, wie wir unseren ersten QR-Code mit QRCoder erzeugen
using QRCoder;
using System.Drawing;
namespace QRCoderVsIronQR
{
public class Program
{
public static void Main()
{
using (QRCodeGenerator qrGenerator = new QRCodeGenerator())
using (QRCodeData qrCodeData = qrGenerator.CreateQrCode("QRCoder Demo 1", QRCodeGenerator.ECCLevel.Q))
using (var qrCode = new QRCoder.BitmapByteQRCode(qrCodeData))
{
var qrCodeImage = qrCode.GetGraphic(20);
var file = Image.FromStream(new MemoryStream(qrCodeImage));
file.Save("QrCoderDemo1.png");
}
}
}
}
using QRCoder;
using System.Drawing;
namespace QRCoderVsIronQR
{
public class Program
{
public static void Main()
{
using (QRCodeGenerator qrGenerator = new QRCodeGenerator())
using (QRCodeData qrCodeData = qrGenerator.CreateQrCode("QRCoder Demo 1", QRCodeGenerator.ECCLevel.Q))
using (var qrCode = new QRCoder.BitmapByteQRCode(qrCodeData))
{
var qrCodeImage = qrCode.GetGraphic(20);
var file = Image.FromStream(new MemoryStream(qrCodeImage));
file.Save("QrCoderDemo1.png");
}
}
}
}
Imports QRCoder
Imports System.Drawing
Namespace QRCoderVsIronQR
Public Class Program
Public Shared Sub Main()
Using qrGenerator As New QRCodeGenerator()
Using qrCodeData As QRCodeData = qrGenerator.CreateQrCode("QRCoder Demo 1", QRCodeGenerator.ECCLevel.Q)
Using qrCode = New QRCoder.BitmapByteQRCode(qrCodeData)
Dim qrCodeImage = qrCode.GetGraphic(20)
Dim file = Image.FromStream(New MemoryStream(qrCodeImage))
file.Save("QrCoderDemo1.png")
End Using
End Using
End Using
End Sub
End Class
End Namespace
Wir erstellen QRCodeGenerator und rufen die Methode CreateQrCode auf, um eine QR-Code-Grafik zu erzeugen
Dann verwenden wir die QRCoder.BitmapByteQRCode-Methode, um das Byte-Array aus der GetGraphic-Methode zu erhalten
Dann speichern wir den Byte-Stream als Bild mit der Methode Image.FromStream
Der folgende Code zeigt, wie man mit IronQR einen QR-Code erzeugt:
using IronQr;
using IronSoftware.Drawing;
namespace QrCodeWithIronQR
{
public class Program
{
public static void Main()
{
// Prepare a QR Code object
QrCode theQrGen = QrWriter.Write("Awesome IronQR");
// Save QR Code to memory
AnyBitmap myQrImage = theQrGen.Save();
// Save QR Code image to disk
myQrImage.SaveAs("awesome.png");
}
}
}
using IronQr;
using IronSoftware.Drawing;
namespace QrCodeWithIronQR
{
public class Program
{
public static void Main()
{
// Prepare a QR Code object
QrCode theQrGen = QrWriter.Write("Awesome IronQR");
// Save QR Code to memory
AnyBitmap myQrImage = theQrGen.Save();
// Save QR Code image to disk
myQrImage.SaveAs("awesome.png");
}
}
}
Imports IronQr
Imports IronSoftware.Drawing
Namespace QrCodeWithIronQR
Public Class Program
Public Shared Sub Main()
' Prepare a QR Code object
Dim theQrGen As QrCode = QrWriter.Write("Awesome IronQR")
' Save QR Code to memory
Dim myQrImage As AnyBitmap = theQrGen.Save()
' Save QR Code image to disk
myQrImage.SaveAs("awesome.png")
End Sub
End Class
End Namespace
Sie können den Unterschied in der Menge des Codes bereits erkennen. Die IronQR-Codeerzeugung erfordert weniger Code.
Wir erstellen den QR-Code mit QrWriter.Write() methode und Übergabe des Inhalts.
Speichern Sie dann den QR-Code mit der Schaltfläche Speichern() methode.
Die Ausgabe ist mit einem IronQR-Wasserzeichen versehen, da ich eine Testversion der Bibliothek verwende. Bei einer lizenzierten Version wird dies entfernt.
Beide Bibliotheken unterstützen Anpassungsoptionen. Sehen wir uns einige der verfügbaren Optionen an
Wir können die QR-Code-Farben in QRCoder wie folgt einstellen:
using QRCoder;
using System.Drawing;
namespace QRCoderVsIronQR
{
public class Program
{
public static void Main()
{
using (QRCodeGenerator qrGenerator = new QRCodeGenerator())
using (QRCodeData qrCodeData = qrGenerator.CreateQrCode("QRCoder Demo 1", QRCodeGenerator.ECCLevel.Q))
using (var qrCode = new QRCoder.BitmapByteQRCode(qrCodeData))
{
var qrCodeImage = qrCode.GetGraphic(20, [255,0,0], [0,255, 0]); // can also use html hex color notation
var file = Image.FromStream(new MemoryStream(qrCodeImage));
file.Save("QrCoderDemo1.png");
}
}
}
}
using QRCoder;
using System.Drawing;
namespace QRCoderVsIronQR
{
public class Program
{
public static void Main()
{
using (QRCodeGenerator qrGenerator = new QRCodeGenerator())
using (QRCodeData qrCodeData = qrGenerator.CreateQrCode("QRCoder Demo 1", QRCodeGenerator.ECCLevel.Q))
using (var qrCode = new QRCoder.BitmapByteQRCode(qrCodeData))
{
var qrCodeImage = qrCode.GetGraphic(20, [255,0,0], [0,255, 0]); // can also use html hex color notation
var file = Image.FromStream(new MemoryStream(qrCodeImage));
file.Save("QrCoderDemo1.png");
}
}
}
}
Imports QRCoder
Imports System.Drawing
Namespace QRCoderVsIronQR
Public Class Program
Public Shared Sub Main()
Using qrGenerator As New QRCodeGenerator()
Using qrCodeData As QRCodeData = qrGenerator.CreateQrCode("QRCoder Demo 1", QRCodeGenerator.ECCLevel.Q)
Using qrCode = New QRCoder.BitmapByteQRCode(qrCodeData)
Dim qrCodeImage = qrCode.GetGraphic(20, (255,0,0), (0,255, 0)) ' can also use html hex color notation
Dim file = Image.FromStream(New MemoryStream(qrCodeImage))
file.Save("QrCoderDemo1.png")
End Using
End Using
End Using
End Sub
End Class
End Namespace
Wir erstellen QRCodeGenerator und rufen die Methode CreateQrCode auf, um eine QR-Code-Grafik zu erzeugen
Dann verwenden wir den QRCoder.BitmapByteQRCode() methode zum Abrufen des Byte-Arrays aus der GetGraphic-Methode
In GetGraphic können wir die Hintergrund- und Linienfarben einstellen. Wir haben rot verwendet [255,0,0] R,G,B Farbe für Linienfarbe und Grün [0,255,0] für den Hintergrund.
Dann speichern wir den Byte-Stream als Bild mit der Funktion Image.FromStream() methode
Wir können Farben für die IronQR QR-Code-Generierung wie den folgenden Code einstellen:
using IronQr;
using IronSoftware.Drawing;
namespace QrCodeWithIronQR
public class Program
{
public static void Main()
{
// Set options
QrOptions options = new QrOptions(QrErrorCorrectionLevel.Medium, 20);
// Create QR
QrCode myQr = QrWriter.Write("IronQR Generation Demo 1", options);
// Style options
AnyBitmap logoBmp = new AnyBitmap("logo.png");
QrStyleOptions style = new QrStyleOptions
{
BackgroundColor = Color.Aqua,
Dimensions = 300, // px
Margins = 10, // px
Color = Color.Red,
Logo = new QrLogo
{
Bitmap = logoBmp,
Width = 100,
Height = 100,
CornerRadius = 2
}
};
// Save QR Code
AnyBitmap qrImage = myQr.Save(style);
// Save QR Code to local disk
qrImage.SaveAs("advancedQr.png");
}
}
}
using IronQr;
using IronSoftware.Drawing;
namespace QrCodeWithIronQR
public class Program
{
public static void Main()
{
// Set options
QrOptions options = new QrOptions(QrErrorCorrectionLevel.Medium, 20);
// Create QR
QrCode myQr = QrWriter.Write("IronQR Generation Demo 1", options);
// Style options
AnyBitmap logoBmp = new AnyBitmap("logo.png");
QrStyleOptions style = new QrStyleOptions
{
BackgroundColor = Color.Aqua,
Dimensions = 300, // px
Margins = 10, // px
Color = Color.Red,
Logo = new QrLogo
{
Bitmap = logoBmp,
Width = 100,
Height = 100,
CornerRadius = 2
}
};
// Save QR Code
AnyBitmap qrImage = myQr.Save(style);
// Save QR Code to local disk
qrImage.SaveAs("advancedQr.png");
}
}
}
Imports IronQr
Imports IronSoftware.Drawing
namespace QrCodeWithIronQR Public Class Program
Public Shared Sub Main()
' Set options
Dim options As New QrOptions(QrErrorCorrectionLevel.Medium, 20)
' Create QR
Dim myQr As QrCode = QrWriter.Write("IronQR Generation Demo 1", options)
' Style options
Dim logoBmp As New AnyBitmap("logo.png")
Dim style As New QrStyleOptions With {
.BackgroundColor = Color.Aqua,
.Dimensions = 300,
.Margins = 10,
.Color = Color.Red,
.Logo = New QrLogo With {
.Bitmap = logoBmp,
.Width = 100,
.Height = 100,
.CornerRadius = 2
}
}
' Save QR Code
Dim qrImage As AnyBitmap = myQr.Save(style)
' Save QR Code to local disk
qrImage.SaveAs("advancedQr.png")
End Sub
End Class
}
Mit IronQR gibt es viele anpassungsmöglichkeiten. In dem obigen Programm haben wir versucht, die Hintergrundfarbe, die Farbe des QR-Codes und die Ränder anzupassen. Wir können auch Abmessungen festlegen.
Zunächst erstellen wir das Optionsobjekt, um die Fehlerkorrekturstufe festzulegen
Dann bereiten wir den QR-Code mit QrWriter.Write vor() methode
Dann setzen wir die Stiloptionen mit QrStyleOptions
Wir legen die Hintergrundfarbe, die Vordergrundfarbe, die Ränder, die Abmessungen und auch ein Logo für den QR-Code fest
QRCoder ist ein auf der MIT-Lizenz basierendes Paket und wird mit Hilfe der Gemeinschaft entwickelt. Dieses Paket ist für Projekte mit kleinem Budget geeignet. Der Benutzer muss darauf warten, dass die Community Probleme löst, oder er kann den Code mit genehmigten Pull Requests in das Git Repository stellen.
IronQR die in Anwendungen verwendet werden sollen. Sie wird unterstützt von Iron Software.
IronQR die erhalten werden können. Der erhaltene Schlüssel muss hier in der Datei appSettings.json abgelegt werden:
{
"IronQR.License.LicenseKey":"myKey"
}
{
"IronQR.License.LicenseKey":"myKey"
}
If True Then
"IronQR.License.LicenseKey":"myKey"
End If
Die Wahl zwischen C# QRCoder und IronQR hängt letztlich von den spezifischen Anforderungen Ihres Projekts ab. Wenn Sie eine kostenlose und quelloffene QR-Code-Generierungsbibliothek mit vielen Anpassungsoptionen benötigen, dann ist C# QRCoder aufgrund seiner Einfachheit und seiner umfangreichen Anpassungsoptionen die erste Wahl.
Wenn Sie eine Bibliothek auf Unternehmensebene benötigen, die nicht nur die Erstellung von QR-Codes mit Anpassungsoptionen, sondern auch das Lesen von QR-Codes unterstützt, dann IronQR wäre die beste Wahl. So letztlich mit IronQR Bibliothek, seine vielen Vorteile und Unterstützung Funktionalität von Iron Softwarekönnen Entwickler mit Leichtigkeit und ohne Bedenken Unternehmensanwendungen schreiben.
9 .NET API-Produkte für Ihre Bürodokumente