ASP .NET Core'da QR Kodları Nasıl Oluşturulur
QR kodları, bilgileri saklamak ve iletmek için uygun bir yol sunarak modern teknolojinin ayrılmaz bir parçası haline geldi. Web geliştirme sürecinde, ASP.NET Core kullanarak IronQR ile uygulayacağımız gibi QR kodu oluşturucuları, dinamik QR kod oluşturma için güçlü yetenekler sağlar. QR kodu oluşturucuları, biletleme sistemleri, kimlik doğrulama, envanter yönetimi ve daha fazlası gibi çeşitli uygulamalarda paha biçilmezdir. Bu makale, özel olarak bu amaç için tasarlanmış güçlü bir kütüphane olan IronQR kullanarak ASP.NET Core'da QR kodları oluşturma sürecine dalacak. Web uygulamaları geliştirmek için çok yönlü bir çerçeve olan ASP.NET Core, QR kodları oluşturmak için güçlü yetenekler sunar. Bu makalede, IronQR'u kullanarak, Iron Software'dan gelen bu güçlü kütüphane ile ASP.NET Core'da QR kodları oluşturma sürecine gireceğiz.
ASP.NET Core'da QR Kodlarını Nasıl Oluşturabilirsiniz
- Visual Studio kullanarak ASP.Net projesi oluşturun
- Paket Yöneticisinden IronQR kütüphanesini kurun
- QR Kodu Oluştur
- Formatlamayla QR Kod Oluştur
IronQR'u Anlamak
IronQR, .NET uygulamaları için yüksek performanslı QR kodu oluşturma kütüphanesidir. Çeşitli özelleştirme seçenekleriyle QR kodları oluşturma için basit ve sezgisel bir API sağlar. IronQR, .NET Standard'ı destekler ve böylece ASP.NET Core dahil olmak üzere geniş bir platform yelpazesinde uyumludur. IronQR ile, geliştiriciler farklı veri türleri, hata düzeltme seviyeleri, boyutlar ve formatlarla QR kodları zahmetsizce oluşturabilirler.
Ana özellikler
1. QR Kodlarını Okuma ve Oluşturma
IronQR, QR kodları oluşturmanızı ve okumanızı kolaylaştırır. QR kodları dinamik olarak oluşturmanız veya mevcut olanlardan bilgi çıkarmak istemeniz fark etmeksizin, bu kütüphane size çözüm sunuyor.
2. Kullanıcı Dostu API
Kütüphane, geliştiricilerin .NET projelerine barkod işlevselliği hızla entegre etmelerini sağlayan kullanıcı dostu bir API sunar. Sadece birkaç dakika içinde QR kodları ile çalışmaya başlayabilirsiniz.
3. Uyum
IronQR, çeşitli .NET sürümleriyle uyumludur, bunlar arasında:
- C#, VB.NET, F#
- .NET Core (8, 7, 6, 5 ve 3.1+)
- .NET Standard (2.0+)
- .NET Framework (4.6.2+)
Blazor ve WebForms web, Xamarin ve MAUI mobil, WPF ve MAUI masaüstü ve konsol uygulamaları dahil geniş bir proje türü yelpazesi kaplanmaktadır.
4. QR Tespiti için Makine Öğrenimi Modeli
IronQR, QR kodlarını tespit etmek için gelişmiş bir özel Makine Öğrenimi modeli kullanır. Bu, doğru ve güvenilir kod tanımayı sağlar. Ek olarak, hafif bir yaklaşımı tercih edenler için Slim Mod opsiyonu (ML olmayan) mevcuttur.
5. QR Kodlarını Okuma
Çeşitli görüntü formatlarından QR kodlarını okuyabilirsiniz, bunlar arasında:
- Görüntüler (jpg, png, svg, bmp)
- Çok sayfalı Görüntüler (gif, tif, tiff)
System.DrawingBitmaps- IronDrawing Images (
AnyBitmap)
6. QR Kodlarını Yazma
IronQR, farklı doküman türleri için QR kodları yazmanıza olanak tanır, bunlar arasında:
- Görüntüler (jpg, png, gif, tiff, bmp)
System.DrawingGörseller- Akışlar (
MemoryStream,byte[]) - PDF (Mevcut PDF Üzerine Damga)
7. QR Kodları Stil Verme
Boyutlandırma, Kenar ve çerçeve ayarlama, Yeniden Renklendirme, Logo ekleme ile QR kodları özelleştirme
8. Hata Yönetimi ve Düzeltme
IronQR, ayrıntılı hata mesajları sunar ve özel QR hata düzeltme seviyelerini destekler.
Bu bilgiyle, ASP.NET Core'da QR kodu oluşturma uygulamasına başlayalım.
Adım 1: Visual Studio kullanarak yeni bir ASP.NET projesi oluşturun
QR kodu oluşturma işlemine dalmadan önce yeni bir ASP.NET Core projesi oluşturalım. Yeni bir projeye başlamak için adımlar burada:
Visual Studio'da yeni bir proje oluşturup ASP.Net Core Web App uygulama şablonunu seçerek başlayın

Proje Adı ve konumunu belirtin

Gerekli .NET sürümünü seçin.

Uygulama kodunu şablondan üretmek için "oluştur" düğmesine tıklayın

Adım 2: Paket Yöneticisinden IronQR kütüphanesini kurun
IronQR'un nasıl kurulacağını aşağıdaki gibi Visual Studio Paket Yöneticisi'nden kurun.

IronQR ayrıca NuGet Paket Yöneticisi kullanılarak kurulabilir.

Adım 3: QR Kodu Üretin
Şimdi, bir QR kodu uygulaması oluşturalım.
QRCode Modeli Oluştur
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
QR Kod Kontrolörü oluşturun
Yeni bir kontrolör eklemek için, kontrolör klasörüne sağ tıklayın ve aşağıda gösterildiği gibi bir ad verin.

Boş Kontrolör'ü seçin.

Bir ad verin.

Sonra, kontrolöre şu kodu entegre edin.
using GenerateQRCode.Models;
using IronSoftware.Drawing;
using IronQr;
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 IronSoftware.Drawing;
using IronQr;
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 IronSoftware.Drawing
Imports IronQr
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
Kod Açıklaması
Ad ve Sınıf Tanımı
Kod, gerekli ad alanlarını içe aktaran kullanma ifadeleriyle başlar. GenerateQRCode.Controllers ad alanı, QrCodeController sınıfını içerir.
Kontrolör Yapıcısı
QrCodeController sınıfı, IWebHostEnvironment parametresi alan bir yapıcıya sahiptir. Bu parametre, web barındırma ile ilgili görevleri ele almak için ASP.NET Core tarafından enjekte edilir.
Eylem Yöntemleri
Index(): Bu metot erişildiğinde bir görünüm (muhtemelen bir HTML sayfası) döndürür. QR kodu oluşturma ile doğrudan ilgili görünmüyor.CreateQRCode(QRCodeModel generateQRCode): Bu metot, QR kodu üretim mantığının kalbidir. BirQRCodeModelnesnesini (muhtemelen QR kodu metnini içeren) bir parametre olarak alır.
Yöntem İçinde
- Oluşturulan QR kodu görüntüsünü kaydetmek için bir yol oluşturur.
QrWriter.Write(generateQRCode.QRCodeText)kullanarak bir QR kodu nesnesi oluşturur.- QR kodunu bir bitmap görüntüsü olarak kaydeder.
- Web isteği ayrıntılarına dayanarak bir görüntü URL'si oluşturur.
ViewBag.QrCodeUriözelliğini görüntü URL'siyle ayarlar.- Bu işlem sırasında herhangi bir istisna oluşursa, fırlatılır.
QR Kod Oluşturma
Gerçek QR kodu üretimi CreateQRCode metodu içinde gerçekleşir. QrWriter.Write(generateQRCode.QRCodeText) çağrısı, sağlanan metne dayalı bir QR kodu nesnesi oluşturur.
Resim Kaydetme
Oluşturulan QR kodu, qrImage.SaveAs(filePath) kullanılarak bitmap görüntü olarak kaydedilir. Resim dosya yolu, web kök yolu ve istenen dosya adına göre oluşturulur.
Resim URL'si
imageUrl, web isteğinin şeması, ana bilgisayarı ve yol temeli kullanılarak oluşturulur. Bu URL, oluşturulan QR kodu resminin erişilebileceği konuma işaret eder. Genel olarak, bu kontrolör QR kodu oluşturmayı, resmi kaydetmeyi ve daha fazla kullanım için bir resim URL'si sağlamayı ele alır.
Kontrolöre Görünüm Ekle
Yeni bir görünüm eklemek için QrCodeController sınıfındaki CreateQRCode eylem yöntemine sağ tıklayın.

"Görünüm Ekle" seçeneğini seçin, ardından "Razor Görünümü"nü seçin. "Ekle" düğmesine tıklayın.

Daha sonra "Oluştur" şablonunu ve daha önce oluşturulmuş Model sınıfını seçin.

Şimdi aşağıdaki kodu görünümde değiştirin
@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>
<input asp-for="QRCodeText" class="form-control" />
<span asp-validation-for="QRCodeText" class="text-danger"></span>
</div>
<div class="form-group">
<a href="#" class="btn btn-primary">Create QR Code</a>
</div>
<div class="form-group">
<img src="@ViewBag.QrCodeUri" class="img-thumbnail" alt="Your QR Code will appear here." />
</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>
<input asp-for="QRCodeText" class="form-control" />
<span asp-validation-for="QRCodeText" class="text-danger"></span>
</div>
<div class="form-group">
<a href="#" class="btn btn-primary">Create QR Code</a>
</div>
<div class="form-group">
<img src="@ViewBag.QrCodeUri" class="img-thumbnail" alt="Your QR Code will appear here." />
</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> <input asp-for="QRCodeText" class="form-control" /> <span asp-validation-for="QRCodeText" class="text-danger"></span> </div> <div class="form-group"> <a href="#" class="btn btn-primary"> Create QR Code</a> </div> <div class="form-group"> <img src="@ViewBag.QrCodeUri" class="img-thumbnail" alt="Your QR Code will appear here." /> </div> </form> </div> </div> <div> <a asp-action="Index"> Clear</a> </div> @section Scripts
"Your QR Code will appear here." /> </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> <input asp-for="QRCodeText" class="form-control" /> <span asp-validation-for="QRCodeText" class="text-danger"></span> </div> <div class="form-group"> <a href="#" class="btn btn-primary"> Create QR Code</a> </div> <div class="form-group"> <img src="@ViewBag.QrCodeUri" class="img-thumbnail" alt="Your QR Code will appear here." /> </div> </form> </div> </div> <div> <a asp-action
"img-thumbnail" alt="Your QR Code will appear here." /> </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> <input asp-for="QRCodeText" class="form-control" /> <span asp-validation-for="QRCodeText" class="text-danger"></span> </div> <div class="form-group"> <a href="#" class="btn btn-primary"> Create QR Code</a> </div> <div class="form-group"> <img src="@ViewBag.QrCodeUri" class="img-thumbnail" alt
"@ViewBag.QrCodeUri" class="img-thumbnail" alt
'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> <input asp-for="QRCodeText" class="form-control" /> <span asp-validation-for="QRCodeText" class="text-danger"></span> </div> <div class="form-group"> <a href="#" class="btn btn-primary"> Create QR Code</a> </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 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> <input asp-for="QRCodeText" class="form-control" /> <span asp-validation-for="QRCodeText" class="text-danger"></span> </div> <div class="form-group"> <a href="#" class="btn btn-primary"> Create QR Code</a> </div> <div class="form-group"> <img src
"btn btn-primary"> Create QR Code</a> </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 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> <input asp-for="QRCodeText" class="form-control" /> <span asp-validation-for="QRCodeText" class="text-danger"></span> </div> <div class="form-group"> <a href="#" class="btn btn-primary"> Create QR Code</a> </div> <div class
"#" class="btn btn-primary"> Create QR Code</a> </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> <input asp-for="QRCodeText" class="form-control" /> <span asp-validation-for="QRCodeText" class="text-danger"></span> </div> <div class="form-group"> <a href="#" class
"form-group"> <a href="#" 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> <input asp-for="QRCodeText" class="form-control" /> <span asp-validation-for="QRCodeText" class="text-danger"></span> </div> <div class="form-group"> <a href
"text-danger"></span> </div> <div class="form-group"> <a href
'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="control-label"></label> <input asp-for="QRCodeText" class="form-control" /> <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 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> <input asp-for="QRCodeText" class="form-control" /> <span asp-validation-for="QRCodeText" class
"form-control" /> <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 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> <input asp-for="QRCodeText" class="form-control" /> <span asp-validation-for
"QRCodeText" class="form-control" /> <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 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> <input asp-for="QRCodeText" class
"control-label"></label> <input 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 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> <input asp-for
"QRCodeText" class="control-label"></label> <input 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 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 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 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 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 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 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 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
Aynı şeyi, uygulama başlatıldığında POST isteği için hata atmaması için indeks eylem yöntemi için de yapın.
Şimdi, Program.cs içinde, yukarıdaki görünümü varsayılan rota yapmak için aşağıdaki kodu değiştirin.
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}")
Bu eylem varsayılan rotayı HomeController'den bizim QrCodeController'imize değiştirecektir.
Şimdi projeyi derleyin ve çalıştırın.

Metin kutusuna herhangi bir metin girin ve 'Oluştur'a tıklayın. Bu, aşağıda gösterildiği gibi yeni bir QR kodu oluşturacaktır.

QR Koduna Stil Ekleme
QrStyleOptions, QR kodu üretimini stilize etmek için kullanılır.
[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 qrCode = QrWriter.Write(generateQRCode.QRCodeText);
QrStyleOptions style = new QrStyleOptions
{
Dimensions = 300, // px size
Margins = 10, // px margins
Color = Color.YellowGreen // custom color
};
// Save QR Code with style options as a 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 object
QrCode qrCode = QrWriter.Write(generateQRCode.QRCodeText);
QrStyleOptions style = new QrStyleOptions
{
Dimensions = 300, // px size
Margins = 10, // px margins
Color = Color.YellowGreen // custom color
};
// Save QR Code with style options as a 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 object
Dim qrCode As QrCode = QrWriter.Write(generateQRCode.QRCodeText)
Dim style As New QrStyleOptions With {
.Dimensions = 300,
.Margins = 10,
.Color = Color.YellowGreen
}
' Save QR Code with style options as a 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
Çıktı

Lisans (Deneme Mevcuttur)
IronQR'yi denemek isteyen geliştiriciler için burada bir deneme lisansı mevcuttur. Bu lisans anahtarı, appSettings.json dosyasına yerleştirilmelidir. Bu, yukarıdaki görüntülerde gösterilen filigranı kaldıracaktır.
{
"IronQr.License.LicenseKey": "My key"
}
Sonuç
Bu makalede, IronQR kullanarak ASP.NET Core'da nasıl QR kodları oluşturulacağını araştırdık. IronQR'nin gücünden yararlanarak, geliştiriciler web uygulamalarına kolaylıkla QR kodu oluşturma işlevselliği entegre edebilirler. İster biletleme, doğrulama, ister bilgi paylaşımı için olsun, QR kodları verileri verimli bir şekilde iletmek için çok yönlü bir çözüm sunar. IronQR ile, ASP.NET Core'da QR kodları oluşturmak ve özelleştirmek hiç bu kadar kolay olmamıştı. ASP.NET Core projelerinize QR kodu oluşturmayı dahil etmeye başlayın ve dinamik veri kodlama ve paylaşımı için olanaklar dünyasının kilidini açın.
Sıkça Sorulan Sorular
ASP.NET Core'de QR kodlarını nasıl oluşturabilirim?
ASP.NET Core'de QR kodları oluşturmak için IronQR kütüphanesi kullanılabilir. Visual Studio'da yeni bir ASP.NET projesi oluşturarak başlayın, Paket Yöneticisi aracılığıyla IronQR'yi yükleyin ve kullanıcı dostu API'sini kullanarak QR kodları oluşturmak için gerekli kodu uygulayın.
ASP.NET Core'de QR kodları için hangi özelleştirme seçenekleri mevcut?
IronQR, ASP.NET Core'de QR kodları için yeniden boyutlandırma, kenar boşluklarını ayarlama, renkleri değiştirme ve logolar ekleme gibi çeşitli özelleştirme seçenekleri sağlar. Bunlar QrStyleOptions sınıfı kullanılarak yönetilebilir.
ASP.NET Core'de QR kod oluşturma ile hata düzeltme nasıl çalışır?
IronQR, ASP.NET Core'de QR kodları oluştururken hata düzeltme seviyelerini yönetmenize izin verir. Bu, QR kodlarının güvenilir tarama için gerekli hata dayanıklılığı düzeyine sahip olmasını sağlar.
Farklı görüntü formatlarından QR kodları ASP.NET Core'de okuyabilir miyim?
Evet, ASP.NET Core'de IronQR ile, jpg, png, svg, bmp, gif, tif ve tiff gibi çeşitli görüntü formatlarından QR kodları okuyabilirsiniz, System.Drawing Bitmaps ve IronDrawing Images (AnyBitmap) dahil.
Tam lisans olmadan IronQR'yi test etmek mümkün mü?
Evet, IronQR'nin deneme lisansını Iron Software web sitesinden alabilirsiniz. Deneme süresi, kütüphaneyi test etmenize ve uygulama ayarları içinde lisansı appSettings.json dosyasına yerleştirerek oluşturulan QR kodlarından filigranları kaldırmanıza olanak tanır.
Web uygulamalarında QR kodlarının kullanılmasının faydaları nelerdir?
QR kodları, verileri verimli bir şekilde depolama ve iletmeye olanak sağladıkları için web uygulamaları için faydalıdır. Özellikle biletleme sistemleri, kimlik doğrulama ve envanter yönetimi gibi uygulamalarda yararlı olup, bilgi kodlama ve paylaşmada dinamik bir yol sunarlar.
ASP.NET Core'da makine öğrenimi QR kod tespitini nasıl geliştirir?
IronQR, kod tanıma konusunda yüksek hassasiyet ve güvenilirlik sağlamak için QR kod tespiti için gelişmiş özel bir Makine Öğrenimi modeli kullanır. Daha hafif bir çözüm tercih eden kullanıcılar için, Makine Öğrenimi olmayan bir Slim Modu da mevcuttur.




