Test dans un environnement réel
Test en production sans filigrane.
Fonctionne partout où vous en avez besoin.
Les codes QR font désormais partie intégrante de la technologie moderne et offrent un moyen pratique de stocker et de transmettre des informations. Dans le domaine du développement web, les générateurs de codes QR, comme celui que nous allons mettre en œuvre à l'aide d'IronQR dans ASP.NET Core, offrent des capacités robustes pour la création dynamique de codes QR. Les générateurs de codes QR sont très utiles pour diverses applications telles que les systèmes de billetterie, l'authentification, la gestion des stocks, etc. Cet article se penche sur le processus de création de codes QR dans ASP.NET Core à l'aide d'IronQR .NET, une puissante bibliothèque conçue à cet effet. ASP.NET Core, étant un framework polyvalent pour la création d'applications web, offre de solides capacités de génération de codes QR. Dans cet article, nous allons nous plonger dans le processus de création de codes QR dans ASP.NET Core à l'aide deIronQRune bibliothèque puissante pour la génération de codes QR à partir deIron Software.
Créer un projet ASP.NET à l'aide de Visual Studio
InstallerIronQR bibliothèque à partir du gestionnaire de paquets
Générer un code QR
IronQR est une bibliothèque de génération de codes QR très performante pour les applications .NET. Il fournit une API simple et intuitive pour générer des codes QR avec diverses options de personnalisation. IronQR prend en charge le Standard .NET, ce qui le rend compatible avec un large éventail de plateformes, notamment ASP.NET Core. Avec IronQR, les développeurs peuvent générer sans effort des codes QR avec différents types de données, niveaux de correction d'erreur, tailles et formats.
IronQR vous permet de générer et de lire des codes QR en toute simplicité. Que vous ayez besoin de créer des codes QR de manière dynamique ou d'extraire des informations de codes existants, cette bibliothèque vous couvre.
La bibliothèque fournit une API conviviale qui permet aux développeurs d'intégrer rapidement la fonctionnalité des codes-barres dans leurs projets .NET. Vous pouvez commencer à travailler avec les codes QR en quelques minutes seulement.
IronQR prend en charge différentes versions de .NET, notamment :
C#, VB.NET, F#
.NET Core(8, 7, 6, 5 et 3.1+)
standard .NET(2.0+)
framework .NET(4.6.2+)
Il couvre un large éventail de types de projets, y compris les projets web(Blazor et WebForms), mobile(Xamarin et MAUI), bureau(WPF ET MAUI)et les applications sur console.
IronQR utilise un modèle avancé d'apprentissage automatique personnalisé pour détecter les codes QR. Cela garantit une reconnaissance précise et fiable du code. En outre, il existe une option "Slim Mode"(non-ML) pour ceux qui préfèrent une approche plus légère.
Vous pouvez lire les codes QR à partir de différents formats d'image, notamment :
Images(jpg, png, svg, bmp)
Images multipages(gif, tif, tiff)
bitmaps System.Drawing
(Système.Dessin)
AnyBitmap
(n'importe quelle image))IronQR vous permet d'écrire des codes QR pour différents types de documents, tels que :
Images(jpg, png, gif, tiff, bmp)
System.Drawing
Images
Cours d'eau(MemoryStream
, byte[]
)
Personnaliser les codes QR en les redimensionnant, en ajustant les marges et les bordures, en les recolorant, en ajoutant des logos
IronQR fournit des messages d'erreur détaillés et prend en charge des niveaux de correction d'erreur QR personnalisés.
Fort de ces connaissances, démarrons l'application pour générer un code QR en ASP.NET Core.
Avant de nous plonger dans la génération de codes QR, configurons un nouveau projet ASP.NET Core. Voici les étapes à suivre pour lancer un nouveau projet :
Commencez par créer un nouveau projet dans Visual Studio et sélectionnez le modèle d'application ASP.NET Core Web App
Indiquer le nom et l'emplacement du projet
Sélectionnez la version .NET requise.
Cliquez sur le bouton "créer" pour générer le code de l'application à partir du modèle
InstallerIronQR à partir du gestionnaire de paquets de Visual Studio, comme indiqué ci-dessous.
IronQR peut également être installé à l'aide du gestionnaire de paquets NuGet.
Créons maintenant une application de code QR.
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
Pour ajouter un nouveau contrôleur, cliquez avec le bouton droit de la souris sur le dossier du contrôleur et donnez-lui un nom comme indiqué ci-dessous.
Sélectionnez le contrôleur vide.
Fournir un nom.
Ensuite, intégrez le code suivant dans le contrôleur.
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
Le code commence par des instructions d'utilisation, qui importent les espaces de noms nécessaires. L'espace de nom GenerateQRCode.Controllers
contient la classe QrCodeController
.
La classe QrCodeController
a un constructeur qui prend un paramètre IWebHostEnvironment
. Ce paramètre est injecté par ASP.NET Core pour gérer les tâches liées à l'hébergement web.
Index()
: Cette méthode renvoie une vue(vraisemblablement une page HTML) en cas d'accès. Il ne semble pas être directement lié à la génération de codes QR. CreateQRCode(QRCodeModel generateQRCode)
: Cette méthode est au cœur de la logique de génération du code QR. Il reçoit un objet QRCodeModel
(contenant vraisemblablement le texte du code QR) comme paramètre.
Il construit un chemin d'accès pour l'enregistrement de l'image du code QR généré. Crée un objet code QR en utilisant QrWriter.Write(generateQRCode.QRCodeText)
. Enregistre le code QR sous forme d'image bitmap. Construit une URL d'image basée sur les détails de la demande web. Définit la propriété ViewBag.QrCodeUri
avec l'URL de l'image. Si des exceptions surviennent au cours de ce processus, elles sont levées.
La génération du code QR s'effectue dans la méthode CreateQRCode
. La fonction QrWriter.Write(generateQRCode.QRCodeText)l'appel
crée un objet code QR sur la base du texte fourni.
Le code QR généré est enregistré sous forme d'image bitmap à l'aide de qrImage.SaveAs(chemindefichier)
. Le chemin d'accès au fichier image est construit sur la base du chemin d'accès à la racine du site web et du nom de fichier souhaité.
Le imageUrl
est construit en utilisant la base du schéma, de l'hôte et du chemin de la requête web. Cette URL pointe vers l'endroit où l'on peut accéder à l'image du code QR généré. Globalement, ce contrôleur gère la génération du code QR, l'enregistrement de l'image et la fourniture d'une URL de l'image pour une utilisation ultérieure
Pour ajouter une nouvelle vue, faites un clic droit sur la méthode d'action CreateQRCode
de la classe QrCodeController
.
Sélectionnez "Ajouter une vue", puis "Vue rasoir". Cliquez sur le bouton "Ajouter".
Sélectionnez ensuite le modèle "Créer" et la classe de modèle générée précédemment.
Remplacez maintenant le code ci-dessous dans la vue
@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
Faites de même pour la méthode d'action index, de sorte que lorsque l'application sera lancée, elle n'affichera pas d'erreur pour la requête POST.
Dans le fichier program.cs, modifiez le code suivant pour que la vue ci-dessus devienne la route par défaut.
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}")
Cette action va modifier la route par défaut de HomeController
vers notre contrôleur QrCode
.
Maintenant, compilez et exécutez le projet.
Saisissez le texte de votre choix dans la zone de texte et cliquez sur "Créer" Un nouveau code QR est alors créé, comme illustré ci-dessous.
les QrStyleOptions
sont utilisées pour styliser la génération du code QR.
[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
Pour les développeurs qui souhaitent tester IronQR, une licence d'essai est disponibleici. Cette clé de licence doit être placée dans le fichier appSettings.json. Cela supprimera le filigrane affiché dans les images ci-dessus. Cette opération permet de supprimer le filigrane qui apparaît dans les images ci-dessus.
{
"IronQR.License.LicenseKey" : "My key"
}
Dans cet article, nous avons exploré comment générer des codes QR dans ASP.NET Core à l'aide d'IronQR. En tirant parti de la puissance d'IronQR, les développeurs peuvent facilement intégrer la fonctionnalité de génération de codes QR dans leurs applications web. Qu'il s'agisse de billetterie, d'authentification ou de partage d'informations, les codes QR offrent une solution polyvalente pour transmettre efficacement des données. Avec IronQR, la création et la personnalisation de codes QR dans ASP.NET Core n'ont jamais été aussi simples. Commencez à intégrer la génération de codes QR dans vos projets ASP.NET Core et débloquez un monde de possibilités pour l'encodage et le partage dynamiques de données.
9 produits de l'API .NET pour vos documents de bureau