Test in einer Live-Umgebung
Test in der Produktion ohne Wasserzeichen.
Funktioniert überall, wo Sie es brauchen.
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 mit IronQReine leistungsfähige Bibliothek zur Erzeugung von QR-Codes aus Iron Software.
ASP.Net-Projekt mit Visual Studio erstellen
Installieren Sie IronQR bibliothek aus dem Paketmanager
QR-Code generieren
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.
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.
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.
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.
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.
Sie können QR-Codes aus verschiedenen Bildformaten lesen, darunter:
Bilder (jpg, png, svg, bmp)
Mehrseitige Bilder (gif, tif, tiff)
system.Drawing"-Bitmaps
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[]`)
Anpassen von QR-Codes durch Größenanpassung, Anpassung von Rändern und Umrandungen, Neueinfärbung, Hinzufügen von Logos
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.
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
Installieren Sie IronQR bibliothek aus dem Visual Studio Package Manager wie unten gezeigt.
IronQR kann auch mit dem NuGet Package Manager installiert werden.
Nun wollen wir eine QR-Code-App 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
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
Der Code beginnt mit using-Anweisungen, die die erforderlichen Namespaces importieren. Der Namespace GenerateQRCode.Controllers
enthält die Klasse QrCodeController
.
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.
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.
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.
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.
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.
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
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
@model GenerateQRCode.Models.QRCodeModel
@{
ViewData["Title"] = "Generate QR Code";
}
<h1>Generate QR Code</h1>
<h4>QRCodeModel</h4>
<hr />
<div class="row">
<div class="col-md-4">
<form asp-action="CreateQRCode">
<div asp-validation-summary="ModelOnly" class="text-danger"></div>
<div class="form-group">
<label asp-for="QRCodeText" class="control-label"></label>
<span asp-validation-for="QRCodeText" class="text-danger"></span>
</div>
<div class="form-group">
</div>
<div class="form-group">
<img src="@ViewBag.QrCodeUri" class="img-thumbnail" />
</div>
</form>
</div>
</div>
<div>
<a asp-action="Index">Clear</a>
</div>
@section Scripts {
@{await Html.RenderPartialAsync("_ValidationScriptsPartial");}
}
@model GenerateQRCode.Models.QRCodeModel
@{
ViewData["Title"] = "Generate QR Code";
}
<h1>Generate QR Code</h1>
<h4>QRCodeModel</h4>
<hr />
<div class="row">
<div class="col-md-4">
<form asp-action="CreateQRCode">
<div asp-validation-summary="ModelOnly" class="text-danger"></div>
<div class="form-group">
<label asp-for="QRCodeText" class="control-label"></label>
<span asp-validation-for="QRCodeText" class="text-danger"></span>
</div>
<div class="form-group">
</div>
<div class="form-group">
<img src="@ViewBag.QrCodeUri" class="img-thumbnail" />
</div>
</form>
</div>
</div>
<div>
<a asp-action="Index">Clear</a>
</div>
@section Scripts {
@{await Html.RenderPartialAsync("_ValidationScriptsPartial");}
}
model ReadOnly Property () As GenerateQRCode.Models.QRCodeModel
ViewData("Title") = "Generate QR Code"
End Property
'INSTANT VB WARNING: An assignment within expression was extracted from the following statement:
'ORIGINAL LINE: <h1> Generate QR Code</h1> <h4> QRCodeModel</h4> <hr /> <div class="row"> <div class="col-md-4"> <form asp-action="CreateQRCode"> <div asp-validation-summary="ModelOnly" class="text-danger"></div> <div class="form-group"> <label asp-for="QRCodeText" class="control-label"></label> <span asp-validation-for="QRCodeText" class="text-danger"></span> </div> <div class="form-group"> </div> <div class="form-group"> <img src="@ViewBag.QrCodeUri" class="img-thumbnail" /> </div> </form> </div> </div> <div> <a asp-action="Index"> Clear</a> </div> @section Scripts
"img-thumbnail" /> </div> </form> </div> </div> (Of div) <a asp-action="Index"> Clear</a> </div> section Scripts
'INSTANT VB WARNING: An assignment within expression was extracted from the following statement:
'ORIGINAL LINE: Friend <h1> Generate QR Code</h1> <h4> QRCodeModel</h4> <hr /> <div Class="row"> <div class="col-md-4"> <form asp-action="CreateQRCode"> <div asp-validation-summary="ModelOnly" class="text-danger"></div> <div class="form-group"> <label asp-for="QRCodeText" class="control-label"></label> <span asp-validation-for="QRCodeText" class="text-danger"></span> </div> <div class="form-group"> </div> <div class="form-group"> <img src="@ViewBag.QrCodeUri" class="img-thumbnail" /> </div> </form> </div> </div> <div> <a asp-action
"@ViewBag.QrCodeUri" class="img-thumbnail" /> </div> </form> </div> </div> (Of div) <a asp-action
'INSTANT VB WARNING: An assignment within expression was extracted from the following statement:
'ORIGINAL LINE: Private Friend <h1> Generate QR Code</h1> <h4> QRCodeModel</h4> <hr /> <div Class="row"> <div class="col-md-4"> <form asp-action="CreateQRCode"> <div asp-validation-summary="ModelOnly" class="text-danger"></div> <div class="form-group"> <label asp-for="QRCodeText" class="control-label"></label> <span asp-validation-for="QRCodeText" class="text-danger"></span> </div> <div class="form-group"> </div> <div class="form-group"> <img src="@ViewBag.QrCodeUri" class
"form-group"> <img src="@ViewBag.QrCodeUri" class
'INSTANT VB WARNING: An assignment within expression was extracted from the following statement:
'ORIGINAL LINE: Private Private Friend <h1> Generate QR Code</h1> <h4> QRCodeModel</h4> <hr /> <div Class="row"> <div class="col-md-4"> <form asp-action="CreateQRCode"> <div asp-validation-summary="ModelOnly" class="text-danger"></div> <div class="form-group"> <label asp-for="QRCodeText" class="control-label"></label> <span asp-validation-for="QRCodeText" class="text-danger"></span> </div> <div class="form-group"> </div> <div class="form-group"> <img src
"form-group"> </div> <div class="form-group"> <img src
'INSTANT VB WARNING: An assignment within expression was extracted from the following statement:
'ORIGINAL LINE: Private Private Private Friend <h1> Generate QR Code</h1> <h4> QRCodeModel</h4> <hr /> <div Class="row"> <div class="col-md-4"> <form asp-action="CreateQRCode"> <div asp-validation-summary="ModelOnly" class="text-danger"></div> <div class="form-group"> <label asp-for="QRCodeText" class="control-label"></label> <span asp-validation-for="QRCodeText" class="text-danger"></span> </div> <div class="form-group"> </div> <div class
"text-danger"></span> </div> <div class="form-group"> </div> <div class
'INSTANT VB WARNING: An assignment within expression was extracted from the following statement:
'ORIGINAL LINE: Private Private Private Private Friend <h1> Generate QR Code</h1> <h4> QRCodeModel</h4> <hr /> <div Class="row"> <div class="col-md-4"> <form asp-action="CreateQRCode"> <div asp-validation-summary="ModelOnly" class="text-danger"></div> <div class="form-group"> <label asp-for="QRCodeText" class="control-label"></label> <span asp-validation-for="QRCodeText" class="text-danger"></span> </div> <div class
"QRCodeText" class="text-danger"></span> </div> <div class
'INSTANT VB WARNING: An assignment within expression was extracted from the following statement:
'ORIGINAL LINE: Private Private Private Private Private Friend <h1> Generate QR Code</h1> <h4> QRCodeModel</h4> <hr /> <div Class="row"> <div class="col-md-4"> <form asp-action="CreateQRCode"> <div asp-validation-summary="ModelOnly" class="text-danger"></div> <div class="form-group"> <label asp-for="QRCodeText" class="control-label"></label> <span asp-validation-for="QRCodeText" class
"control-label"></label> <span asp-validation-for="QRCodeText" class
'INSTANT VB WARNING: An assignment within expression was extracted from the following statement:
'ORIGINAL LINE: Private Private Private Private Private Private Friend <h1> Generate QR Code</h1> <h4> QRCodeModel</h4> <hr /> <div Class="row"> <div class="col-md-4"> <form asp-action="CreateQRCode"> <div asp-validation-summary="ModelOnly" class="text-danger"></div> <div class="form-group"> <label asp-for="QRCodeText" class="control-label"></label> <span asp-validation-for
"QRCodeText" class="control-label"></label> <span asp-validation-for
'INSTANT VB WARNING: An assignment within expression was extracted from the following statement:
'ORIGINAL LINE: Private Private Private Private Private Private Private Friend <h1> Generate QR Code</h1> <h4> QRCodeModel</h4> <hr /> <div Class="row"> <div class="col-md-4"> <form asp-action="CreateQRCode"> <div asp-validation-summary="ModelOnly" class="text-danger"></div> <div class="form-group"> <label asp-for="QRCodeText" class
"form-group"> <label asp-for="QRCodeText" class
'INSTANT VB WARNING: An assignment within expression was extracted from the following statement:
'ORIGINAL LINE: Private Private Private Private Private Private Private Private Friend <h1> Generate QR Code</h1> <h4> QRCodeModel</h4> <hr /> <div Class="row"> <div class="col-md-4"> <form asp-action="CreateQRCode"> <div asp-validation-summary="ModelOnly" class="text-danger"></div> <div class="form-group"> <label asp-for
"text-danger"></div> <div class="form-group"> <label asp-for
'INSTANT VB WARNING: An assignment within expression was extracted from the following statement:
'ORIGINAL LINE: Private Private Private Private Private Private Private Private Private Friend <h1> Generate QR Code</h1> <h4> QRCodeModel</h4> <hr /> <div Class="row"> <div class="col-md-4"> <form asp-action="CreateQRCode"> <div asp-validation-summary="ModelOnly" class="text-danger"></div> <div class
"ModelOnly" class="text-danger"></div> <div class
'INSTANT VB WARNING: An assignment within expression was extracted from the following statement:
'ORIGINAL LINE: Private Private Private Private Private Private Private Private Private Private Friend <h1> Generate QR Code</h1> <h4> QRCodeModel</h4> <hr /> <div Class="row"> <div class="col-md-4"> <form asp-action="CreateQRCode"> <div asp-validation-summary="ModelOnly" class
"CreateQRCode"> <div asp-validation-summary="ModelOnly" class
'INSTANT VB WARNING: An assignment within expression was extracted from the following statement:
'ORIGINAL LINE: Private Private Private Private Private Private Private Private Private Private Private Friend <h1> Generate QR Code</h1> <h4> QRCodeModel</h4> <hr /> <div Class="row"> <div class="col-md-4"> <form asp-action="CreateQRCode"> <div asp-validation-summary
"col-md-4"> <form asp-action="CreateQRCode"> <div asp-validation-summary
'INSTANT VB WARNING: An assignment within expression was extracted from the following statement:
'ORIGINAL LINE: Private Private Private Private Private Private Private Private Private Private Private Private Friend <h1> Generate QR Code</h1> <h4> QRCodeModel</h4> <hr /> <div Class="row"> <div class="col-md-4"> <form asp-action
"row"> <div class="col-md-4"> <form asp-action
'INSTANT VB WARNING: Instant VB cannot determine whether both operands of this division are integer types - if they are then you should use the VB integer division operator:
Private Private Private Private Private Private Private Private Private Private Private Private Private Private Friend (Of h1) Generate QR Code</h1> (Of h4) QRCodeModel</h4> <hr /> <div Class="row"> <div class
@
If True Then
Await Html.RenderPartialAsync("_ValidationScriptsPartial")
End If
End Class
Führen Sie dasselbe auch für die Index-Aktionsmethode durch, damit beim Start der Anwendung kein Fehler für die POST-Anforderung ausgegeben wird.
Ändern Sie nun in der Datei program.cs den folgenden Code, um die obige Ansicht als Standardroute festzulegen.
app.MapControllerRoute(
name: "default",
pattern: "{controller=QrCode}/{action=Index}"
);
app.MapControllerRoute(
name: "default",
pattern: "{controller=QrCode}/{action=Index}"
);
app.MapControllerRoute(name:= "default", pattern:= "{controller=QrCode}/{action=Index}")
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.
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
Für Entwickler, die IronQR testen möchten, ist eine Testlizenz erhältlich hier. 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"
}
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.
9 .NET API-Produkte für Ihre Bürodokumente