using IronQr;
using IronSoftware.Drawing;
// Create a QR Code object
QrCode myQr = QrWriter.Write("hello world");
// Save QR Code as a Bitmap
AnyBitmap qrImage = myQr.Save();
// Save QR Code Bitmap as File
qrImage.SaveAs("qr.png");
QR-Codes sind zu einem festen Bestandteil der modernen Technologie geworden und bieten eine bequeme Möglichkeit, Informationen zu speichern und zu übertragen. In der Webentwicklung bieten QR-Code-Generatoren wie der, den wir mit IronQR in ASP.NET Core implementieren werden, robuste Funktionen für die dynamische QR-Code-Erstellung. QR-Code-Generatoren sind von unschätzbarem Wert für verschiedene Anwendungen wie Ticketingsysteme, Authentifizierung, Bestandsverwaltung und vieles mehr. Dieser Artikel befasst sich mit der Erstellung von QR-Codes in ASP.NET Core mit IronQR, einer leistungsstarken Bibliothek, die für diesen Zweck entwickelt wurde. ASP.NET Core, ein vielseitiges Framework für die Erstellung von Webanwendungen, bietet robuste Funktionen für die Erzeugung von QR-Codes. In diesem Artikel befassen wir uns mit der Erstellung von QR-Codes in ASP.NET Core mitIronQReine leistungsfähige Bibliothek zur Erzeugung von QR-Codes ausIron Software.
Wie man QR-Codes in ASP.NET Core generiert
ASP.Net-Projekt mit Visual Studio erstellen
Installieren SieIronQR bibliothek aus dem Paketmanager
QR-Code generieren
QR-Code mit Formatierung generieren
IronQR verstehen
IronQR ist eine leistungsstarke Bibliothek zur Erzeugung von QR-Codes für .NET-Anwendungen. Es bietet eine einfache und intuitive API für die Erstellung von QR-Codes mit verschiedenen Anpassungsoptionen. IronQR unterstützt den .NET-Standard und ist damit mit einer Vielzahl von Plattformen, einschließlich ASP.NET Core, kompatibel. Mit IronQR können Entwickler mühelos QR-Codes mit verschiedenen Datentypen, Fehlerkorrekturstufen, Größen und Formaten erzeugen.
Wesentliche Merkmale
1. QR-Codes lesen und erstellen
Mit IronQR können Sie ganz einfach QR-Codes erzeugen und lesen. Egal, ob Sie QR-Codes dynamisch erstellen oder Informationen aus vorhandenen Codes extrahieren möchten, diese Bibliothek bietet Ihnen alles, was Sie brauchen.
2. Benutzerfreundliches API
Die Bibliothek bietet eine benutzerfreundliche API, die es Entwicklern ermöglicht, Barcode-Funktionen schnell in ihre .NET-Projekte zu integrieren. In nur wenigen Minuten können Sie mit QR-Codes arbeiten.
3. Kompatibilität
IronQR unterstützt verschiedene .NET-Versionen, darunter:
C#, VB.NET, F#
.NET Core(8, 7, 6, 5 und 3.1+)
.NET-Standard(2.0+)
.NET-Framework(4.6.2+)
Es deckt eine breite Palette von Projekttypen ab, darunter Web(Blazor und WebForms)mobil(Xamarin & MAUI)schreibtisch(WPF UND MAUI)und Konsolenanwendungen.
4. Maschinelles Lernmodell für QR-Erkennung
IronQR verwendet ein fortschrittliches benutzerdefiniertes Modell für maschinelles Lernen, um QR-Codes zu erkennen. Dies gewährleistet eine genaue und zuverlässige Codeerkennung. Außerdem gibt es eine Option für den Slim-Modus(nicht-ML) für diejenigen, die ein leichtes Konzept bevorzugen.
5. QR-Codes lesen
Sie können QR-Codes aus verschiedenen Bildformaten lesen, darunter:
Bilder(jpg, png, svg, bmp)
Mehrseitige Bilder(gif, tif, tiff)
system.Drawing"-Bitmaps
IronDrawing Bilder(anyBitmap)
6. QR-Codes schreiben
IronQR ermöglicht es Ihnen, QR-Codes für verschiedene Dokumenttypen zu schreiben, z. B:
Bilder(jpg, png, gif, tiff, bmp)
system.Drawing"-Bilder
Ströme(memoryStream", "Byte[]`)
PDF(Stempel auf bestehendes PDF)
7. Gestalten von QR-Codes
Anpassen von QR-Codes durch Größenanpassung, Anpassung von Rändern und Umrandungen, Neueinfärbung, Hinzufügen von Logos
8. Fehlerbehandlung und -korrektur
IronQR liefert detaillierte Fehlermeldungen und unterstützt benutzerdefinierte QR-Fehlerkorrekturstufen.
Mit diesem Wissen, lassen Sie uns mit der Anwendung beginnen, um QR-Code in ASP.NET Core zu erzeugen.
Schritt 1: Erstellen Sie ein neues ASP.NET-Projekt mit Visual Studio
Bevor wir uns mit der QR-Code-Generierung beschäftigen, sollten wir ein neues ASP.NET Core-Projekt einrichten. Nachfolgend finden Sie die Schritte zur Initiierung eines neuen Projekts:
Erstellen Sie zunächst ein neues Projekt in Visual Studio und wählen Sie die Anwendungsvorlage ASP.Net Core Web App
Geben Sie Projektname und Standort an
Wählen Sie die gewünschte .NET-Version aus.
Klicken Sie auf die Schaltfläche "Erstellen", um den Anwendungscode aus der Vorlage zu generieren
Schritt 2: Installieren Sie die IronQR-Bibliothek über den Paketmanager
Installieren SieIronQR bibliothek aus dem Visual Studio Package Manager wie unten gezeigt.
IronQR kann auch mit dem NuGet Package Manager installiert werden.
Schritt 3: Erzeugen eines QR-Codes
Nun wollen wir eine QR-Code-App erstellen.
QRCode"-Modell erstellen
using System.ComponentModel.DataAnnotations;
namespace GenerateQRCode.Models
{
public class QRCodeModel
{
[Display(Name = "Enter QR Code Text")]
public string QRCodeText
{
get;
set;
}
}
}
using System.ComponentModel.DataAnnotations;
namespace GenerateQRCode.Models
{
public class QRCodeModel
{
[Display(Name = "Enter QR Code Text")]
public string QRCodeText
{
get;
set;
}
}
}
Imports System.ComponentModel.DataAnnotations
Namespace GenerateQRCode.Models
Public Class QRCodeModel
<Display(Name := "Enter QR Code Text")>
Public Property QRCodeText() As String
End Class
End Namespace
$vbLabelText $csharpLabel
Einen QR-Code-Controller erstellen
Um eine neue Steuerung hinzuzufügen, klicken Sie mit der rechten Maustaste auf den Steuerungsordner und geben Sie einen Namen ein, wie unten gezeigt.
Wählen Sie den leeren Controller.
Geben Sie einen Namen an.
Als nächstes integrieren Sie den folgenden Code in den Controller.
using GenerateQRCode.Models;
using IronQr;
using IronSoftware.Drawing;
using Microsoft.AspNetCore.Mvc;
namespace GenerateQRCode.Controllers
{
public class QrCodeController : Controller
{
private readonly IWebHostEnvironment _environment;
public QrCodeController(IWebHostEnvironment environment)
{
_environment = environment;
}
public IActionResult Index()
{
return View();
}
[HttpPost]
public IActionResult CreateQRCode(QRCodeModel generateQRCode)
{
try
{
string path = Path.Combine(_environment.WebRootPath, "GeneratedQRCode");
if (!Directory.Exists(path))
{
Directory.CreateDirectory(path);
}
string filePath = Path.Combine(_environment.WebRootPath, "GeneratedQRCode/qrcode.png");
// Create a QR Code object
QrCode myQr = QrWriter.Write(generateQRCode.QRCodeText);
// Save QR Code as a Bitmap
AnyBitmap qrImage = myQr.Save();
// Save QR Code Bitmap as File
qrImage.SaveAs(filePath);
string fileName = Path.GetFileName(filePath); // qr code file
string imageUrl = $"{this.Request.Scheme}://{this.Request.Host}{this.Request.PathBase}" + "/GeneratedQRCode/" + fileName;
ViewBag.QrCodeUri = imageUrl;
}
catch (Exception)
{
throw;
}
return View();
}
}
}
using GenerateQRCode.Models;
using IronQr;
using IronSoftware.Drawing;
using Microsoft.AspNetCore.Mvc;
namespace GenerateQRCode.Controllers
{
public class QrCodeController : Controller
{
private readonly IWebHostEnvironment _environment;
public QrCodeController(IWebHostEnvironment environment)
{
_environment = environment;
}
public IActionResult Index()
{
return View();
}
[HttpPost]
public IActionResult CreateQRCode(QRCodeModel generateQRCode)
{
try
{
string path = Path.Combine(_environment.WebRootPath, "GeneratedQRCode");
if (!Directory.Exists(path))
{
Directory.CreateDirectory(path);
}
string filePath = Path.Combine(_environment.WebRootPath, "GeneratedQRCode/qrcode.png");
// Create a QR Code object
QrCode myQr = QrWriter.Write(generateQRCode.QRCodeText);
// Save QR Code as a Bitmap
AnyBitmap qrImage = myQr.Save();
// Save QR Code Bitmap as File
qrImage.SaveAs(filePath);
string fileName = Path.GetFileName(filePath); // qr code file
string imageUrl = $"{this.Request.Scheme}://{this.Request.Host}{this.Request.PathBase}" + "/GeneratedQRCode/" + fileName;
ViewBag.QrCodeUri = imageUrl;
}
catch (Exception)
{
throw;
}
return View();
}
}
}
Imports GenerateQRCode.Models
Imports IronQr
Imports IronSoftware.Drawing
Imports Microsoft.AspNetCore.Mvc
Namespace GenerateQRCode.Controllers
Public Class QrCodeController
Inherits Controller
Private ReadOnly _environment As IWebHostEnvironment
Public Sub New(ByVal environment As IWebHostEnvironment)
_environment = environment
End Sub
Public Function Index() As IActionResult
Return View()
End Function
<HttpPost>
Public Function CreateQRCode(ByVal generateQRCode As QRCodeModel) As IActionResult
Try
Dim path As String = System.IO.Path.Combine(_environment.WebRootPath, "GeneratedQRCode")
If Not Directory.Exists(path) Then
Directory.CreateDirectory(path)
End If
Dim filePath As String = System.IO.Path.Combine(_environment.WebRootPath, "GeneratedQRCode/qrcode.png")
' Create a QR Code object
Dim myQr As QrCode = QrWriter.Write(generateQRCode.QRCodeText)
' Save QR Code as a Bitmap
Dim qrImage As AnyBitmap = myQr.Save()
' Save QR Code Bitmap as File
qrImage.SaveAs(filePath)
Dim fileName As String = System.IO.Path.GetFileName(filePath) ' qr code file
Dim imageUrl As String = $"{Me.Request.Scheme}://{Me.Request.Host}{Me.Request.PathBase}" & "/GeneratedQRCode/" & fileName
ViewBag.QrCodeUri = imageUrl
Catch e1 As Exception
Throw
End Try
Return View()
End Function
End Class
End Namespace
$vbLabelText $csharpLabel
Code Erläuterung
Namespace und Klassendefinition
Der Code beginnt mit using-Anweisungen, die die erforderlichen Namespaces importieren. Der Namespace GenerateQRCode.Controllers enthält die Klasse QrCodeController.
Controller-Konstruktor
Die Klasse QrCodeController hat einen Konstruktor, der einen Parameter IWebHostEnvironment benötigt. Dieser Parameter wird von ASP.NET Core für die Bearbeitung von Aufgaben im Zusammenhang mit dem Webhosting injiziert.
Aktionsmethoden
Index(): Diese Methode gibt eine Ansicht zurück(vermutlich eine HTML-Seite) beim Zugriff. Es scheint nicht direkt mit der QR-Code-Generierung zusammenzuhängen. CreateQRCode(QRCodeModel generateQRCode): Diese Methode ist das Herzstück der QR-Code-Generierungslogik. Es empfängt ein QRCodeModel-Objekt(vermutlich mit dem Text des QR-Codes) als Parameter.
Innerhalb der Methode
Er erstellt einen Pfad zum Speichern des erzeugten QR-Code-Bildes. Erzeugt ein QR-Code-Objekt mit QrWriter.Write(generateQRCode.QRCodeText). Speichert den QR-Code als Bitmap-Bild. Konstruiert eine Bild-URL auf der Grundlage der Webanforderungsdetails. Setzt die Eigenschaft "ViewBag.QrCodeUri" mit der Bild-URL. Treten während dieses Vorgangs Ausnahmen auf, so werden diese ausgelöst.
QR-Code-Erzeugung
Die eigentliche QR-Code-Generierung erfolgt in der Methode CreateQRCode. Die Funktion `QrWriter.Write(generateQRCode.QRCodeText)der Aufruf erstellt ein QR-Code-Objekt auf der Grundlage des angegebenen Textes.
Bildspeicherung
Der generierte QR-Code wird mit qrImage.SaveAs' als Bitmap-Bild gespeichert(dateipfad). Der Pfad der Bilddatei wird auf der Grundlage des Web-Root-Pfads und des gewünschten Dateinamens erstellt.
Bild-URL
Die "imageUrl" wird unter Verwendung des Schemas, des Hosts und der Pfadbasis der Webanforderung erstellt. Diese URL verweist auf den Ort, an dem das generierte QR-Code-Bild abgerufen werden kann. Insgesamt kümmert sich dieser Controller um die Erzeugung des QR-Codes, das Speichern des Bildes und die Bereitstellung einer Bild-URL für die weitere Verwendung
Ansicht zum Controller hinzufügen
Um eine neue Ansicht hinzuzufügen, klicken Sie mit der rechten Maustaste auf die Aktionsmethode CreateQRCode in der Klasse QrCodeController.
Wählen Sie "Ansicht hinzufügen" und dann "Razor-Ansicht". Klicken Sie auf die Schaltfläche "Hinzufügen".
Wählen Sie dann die Vorlage "Erstellen" und die zuvor erstellte Modellklasse.
Ersetzen Sie nun den folgenden Code in der Ansicht
Diese Aktion ändert die Standardroute von "HomeController" zu unserem "QRCode"-Controller.
Kompilieren Sie nun das Projekt und führen Sie es aus.
Geben Sie einen beliebigen Text in das Textfeld ein und klicken Sie auf "Erstellen" Dadurch wird ein neuer QR-Code wie unten gezeigt erstellt.
Stil zum QR-Code hinzufügen
qrStyleOptions" werden zur Gestaltung der QR-Code-Generierung verwendet.
[HttpPost]
public IActionResult CreateQRCode(QRCodeModel generateQRCode)
{
try
{
string path = Path.Combine(_environment.WebRootPath, "GeneratedQRCode");
if (!Directory.Exists(path))
{
Directory.CreateDirectory(path);
}
string filePath = Path.Combine(_environment.WebRootPath, "GeneratedQRCode/qrcode.png");
// Create a QR Code obj
QrCode qrCode = QrWriter.Write(generateQRCode.QRCodeText);
QrStyleOptions style = new QrStyleOptions
{
Dimensions = 300, // px
Margins = 10, // px
Color = Color.YellowGreen
};
// Save QR Code as a any bitmap
AnyBitmap qrImage = qrCode.Save(style);
// Save QR Code Bitmap to File
qrImage.SaveAs(filePath);
string fileName = Path.GetFileName(filePath); // qr code file
string imageUrl = $"{this.Request.Scheme}://{this.Request.Host}{this.Request.PathBase}" + "/GeneratedQRCode/" + fileName;
ViewBag.QrCodeUri = imageUrl;
}
catch (Exception)
{
throw;
}
return View();
}
[HttpPost]
public IActionResult CreateQRCode(QRCodeModel generateQRCode)
{
try
{
string path = Path.Combine(_environment.WebRootPath, "GeneratedQRCode");
if (!Directory.Exists(path))
{
Directory.CreateDirectory(path);
}
string filePath = Path.Combine(_environment.WebRootPath, "GeneratedQRCode/qrcode.png");
// Create a QR Code obj
QrCode qrCode = QrWriter.Write(generateQRCode.QRCodeText);
QrStyleOptions style = new QrStyleOptions
{
Dimensions = 300, // px
Margins = 10, // px
Color = Color.YellowGreen
};
// Save QR Code as a any bitmap
AnyBitmap qrImage = qrCode.Save(style);
// Save QR Code Bitmap to File
qrImage.SaveAs(filePath);
string fileName = Path.GetFileName(filePath); // qr code file
string imageUrl = $"{this.Request.Scheme}://{this.Request.Host}{this.Request.PathBase}" + "/GeneratedQRCode/" + fileName;
ViewBag.QrCodeUri = imageUrl;
}
catch (Exception)
{
throw;
}
return View();
}
<HttpPost>
Public Function CreateQRCode(ByVal generateQRCode As QRCodeModel) As IActionResult
Try
Dim path As String = System.IO.Path.Combine(_environment.WebRootPath, "GeneratedQRCode")
If Not Directory.Exists(path) Then
Directory.CreateDirectory(path)
End If
Dim filePath As String = System.IO.Path.Combine(_environment.WebRootPath, "GeneratedQRCode/qrcode.png")
' Create a QR Code obj
Dim qrCode As QrCode = QrWriter.Write(generateQRCode.QRCodeText)
Dim style As New QrStyleOptions With {
.Dimensions = 300,
.Margins = 10,
.Color = Color.YellowGreen
}
' Save QR Code as a any bitmap
Dim qrImage As AnyBitmap = qrCode.Save(style)
' Save QR Code Bitmap to File
qrImage.SaveAs(filePath)
Dim fileName As String = System.IO.Path.GetFileName(filePath) ' qr code file
Dim imageUrl As String = $"{Me.Request.Scheme}://{Me.Request.Host}{Me.Request.PathBase}" & "/GeneratedQRCode/" & fileName
ViewBag.QrCodeUri = imageUrl
Catch e1 As Exception
Throw
End Try
Return View()
End Function
$vbLabelText $csharpLabel
Ausgabe
Lizenz (Testversion verfügbar)
Für Entwickler, die IronQR testen möchten, ist eine Testlizenz erhältlichhier. Dieser Lizenzschlüssel muss in der Datei appSettings.json platziert werden. Dadurch wird das in den obigen Bildern gezeigte Wasserzeichen entfernt. Dadurch wird das in den obigen Bildern gezeigte Wasserzeichen entfernt.
{
"IronQR.License.LicenseKey" : "My key"
}
Schlussfolgerung
In diesem Artikel haben wir untersucht, wie man mit IronQR QR-Codes in ASP.NET Core generiert. Durch die Nutzung der Leistungsfähigkeit von IronQR können Entwickler ganz einfach QR-Code-Generierungsfunktionen in ihre Webanwendungen integrieren. Ob für die Ausstellung von Fahrkarten, die Authentifizierung oder die Weitergabe von Informationen - QR-Codes bieten eine vielseitige Lösung für die effiziente Übertragung von Daten. Mit IronQR war das Erstellen und Anpassen von QR-Codes in ASP.NET Core noch nie so einfach. Integrieren Sie die QR-Code-Generierung in Ihre ASP.NET Core-Projekte und erschließen Sie sich eine Welt der Möglichkeiten für die dynamische Datencodierung und -freigabe.
Regan schloss sein Studium an der University of Reading mit einem BA in Elektrotechnik ab. Bevor er zu Iron Software kam, konzentrierte er sich in seinen früheren Jobs auf einzelne Aufgaben. Was ihm bei Iron Software am meisten Spaß macht, ist das Spektrum der Aufgaben, die er übernehmen kann, sei es im Vertrieb, im technischen Support, in der Produktentwicklung oder im Marketing. Es macht ihm Spaß, die Art und Weise zu verstehen, wie Entwickler die Bibliothek von Iron Software nutzen, und dieses Wissen zu nutzen, um die Dokumentation und die Produkte kontinuierlich zu verbessern.
< PREVIOUS Wie benutzt man .NET MAUI für QR Code Scanner