ASP .NET Core'da QR Kodları Nasıl Oluşturulur
QR kodları, bilgileri depolamak ve iletmek için modern teknolojinin ayrılmaz bir parçası haline gelmiştir. Web geliştirmede, ASP.NET Core kullanarak uygulayacağımız QR kod üreticileri, dinamik QR kod oluşturma için güçlü yetenekler sunar. QR kod üreticileri, biletleme sistemleri, kimlik doğrulama, envanter yönetimi ve daha fazlası gibi çeşitli uygulamalar için paha biçilmezdir. Bu makale, bu amaç için tasarlanmış güçlü bir kütüphane olan IronQR kullanarak ASP.NET Core'da QR kodları oluşturmanın sürecini inceliyor. Web uygulamaları oluşturmak 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 kullanarak ASP.NET Core'da QR kodları oluşturma sürecini, Iron Software'den bir QR kod üretim kütüphanesi ile inceleyeceğiz.
ASP.NET Core'da QR Kodları Nasıl Oluşturulur
- Visual Studio kullanarak bir ASP.Net projesi oluşturun
- Paket Yöneticisi'nden IronQR kütüphanesini yükleyin
- QR Kodu Oluşturun
- Biçimlendirme ile QR Kodu Oluşturun
IronQR'u Anlamak
IronQR, .NET uygulamaları için yüksek performanslı bir QR kod üretim kütüphanesidir. Çeşitli özelleştirme seçenekleriyle QR kodları oluşturmak için basit ve sezgisel bir API sağlar. IronQR, geniş bir platform yelpazesiyle uyumlu hale getiren .NET Standard'ı destekler ve ASP.NET Core dahil edilir. IronQR ile geliştiriciler, farklı veri türleri, hata düzeltme seviyeleri, boyutlar ve formatlarla QR kodları kolayca oluşturabilirler.
Ana özellikler
1. QR Kodlarını Okuma ve Oluşturma
IronQR, QR kodlarını kolayca oluşturmanıza ve okumanıza olanak tanır. İster dinamik QR kodları oluşturmanız ister mevcut olanlardan bilgi çıkarım yapmanız gereksin, bu kütüphane ihtiyaçınızı karşılar.
2. Kullanıcı Dostu API
Kütüphane, geliştiricilerin .NET projelerine hızla barkod işlevselliği entegre etmelerini sağlayan kullanıcı dostu bir API sağlar. QR kodlarıyla çalışmaya sadece birkaç dakika içinde başlayabilirsiniz.
3. Uyumluluk
IronQR, çeşitli .NET sürümleriyle uyumludur, şunlar dahil:
- C#, VB.NET, F#
- .NET Core (8, 7, 6, 5 ve 3.1+)
- .NET Standard (2.0+)
- .NET Framework (4.6.2+)
Blazor & WebForms gibi web, Xamarin & MAUI gibi mobil, WPF & MAUI gibi masaüstü ve konsol uygulamaları dahil geniş bir proje türünü kapsar.
4. QR Tespiti İç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ımını sağlar. Ek olarak, hafif bir yaklaşımı tercih edenler için Slim Modu seçeneği (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)
- Çoklu Sayfa Görüntüler (gif, tif, tiff)
System.DrawingBitmaps- IronDrawing Görüntüler (
AnyBitmap)
6. QR Kodları Yazma
IronQR, farklı belge türleri için QR kodları yazmanıza olanak tanır, örneğin:
- Görüntüler (jpg, png, gif, tiff, bmp)
System.DrawingGörüntüler- Akışlar (
MemoryStream,byte[]) - PDF (Mevcut PDF Üzerine Mühürleme)
7. QR Kodlarını Şekillendirme
QR kodlarını Özelleştirin: Yeniden Boyutlandırma, Kenar ve Kenarlıkları Ayarlama, Yeniden Renklendirme, Logolar Ekleme
8. Hata İşleme ve Düzeltme
IronQR ayrıntılı hata mesajları sağlar ve özel QR hata düzeltme seviyelerini destekler.
Bu bilgiyle, ASP.NET Core'da QR kodu oluşturmak için uygulamaya başlayalım.
Adım 1: Visual Studio kullanarak yeni bir ASP.NET projesi oluşturun
QR kodu oluşturmaya başlamadan önce, yeni bir ASP.NET Core projesi ayarlayalım. İşte yeni bir proje başlatmak için adımlar:
Visual Studio'da yeni bir proje oluşturarak ve ASP.Net Core Web Uygulaması şablonunu seçerek başlayın

Proje Adı ve konumu sağlayın

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

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

Adım 2: Paket Yöneticisi'nden IronQR kutuphanesini yükleyin
IronQR kutuphanesini Visual Studio Paket Yöneticisi'nden aşağıda gösterildiği gibi yükleyin.

IronQR ayrıca NuGet Paket Yöneticisi kullanılarak yüklenebilir.

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

Boş Denetleyiciyi seçin.

Bir ad sağlayın.

Ardından, aşağıdaki kodu denetleyiciye 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ı
Namespace ve Sınıf Tanımı
Kod, gerekli isim alanlarını içe aktaran using ifadeleri ile başlar. GenerateQRCode.Controllers isim alanı, QrCodeController sınıfını içerir.
Denetleyici Yapılandırıcısı
QrCodeController sınıfı, IWebHostEnvironment parametresini alan bir yapılandırıcıya sahiptir. Bu parametre, web barındırma ile ilgili görevlerin işlenmesi için ASP.NET Core tarafından enjekte edilir.
Eylem Yöntemleri
Index(): Bu yöntem, 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 yöntem QR kodu oluşturma mantığının kalbidir. BirQRCodeModelnesnesi (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 bitmap görüntü olarak kaydeder.
- Web istek ayrıntılarına dayalı bir görüntü URL'si oluşturur.
- Görüntü URL'si ile
ViewBag.QrCodeUriözelliğini ayarlar. - Bu işlem sırasında herhangi bir istisna oluşursa, bunlar atılır.
QR Kod Oluşturma
Gerçek QR kodu oluşturma, CreateQRCode yönteminde gerçekleşir. QrWriter.Write(generateQRCode.QRCodeText) çağrısı, sağlanan metne dayalı bir QR kodu nesnesi oluşturur.
Görüntü Kaydetme
Oluşturulan QR kodu, qrImage.SaveAs(filePath) kullanılarak bir bitmap görüntü olarak kaydedilir. Görüntü dosya yolu, web kök yolu ve istenilen dosya adı temel alınarak oluşturulur.
Görüntü URL'si
imageUrl, web isteğinin şeması, hostu ve yol temeline dayanarak oluşturulur. Bu URL, oluşturulan QR kodu görüntüsünün erişilebileceği konumu işaret eder. Genel olarak, bu denetleyici QR kodu oluşturmayı, görüntüyü kaydetmeyi ve daha fazla kullanım için bir görüntü URL'si sağlamayı ele alır.
Denetleyiciye 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ü" seçin. "Ekle" düğmesine tıklayın.

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

Şimdi alttaki 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
Uygulama başlatıldığında, POST isteği için hata atılmaması için indeks eylem yöntemi için de aynı işlemi yapın.
Program.cs içinde yukarıdaki görünümü varsayılan yol olarak 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 işlem, varsayılan yolu HomeController'den QrCodeController'ye 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 Eklemek
QR kodu oluşturmayı şekillendirmek için QrStyleOptions 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 Sürümü Mevcut)
IronQR'yi denemek isteyen geliştiriciler için bir deneme lisansı burada mevcuttur. Bu lisans anahtarı appSettings.json dosyasına yerleştirilmelidir. Böylece yukarıdaki görüntülerde gösterilen filigran kaldırılacaktır.
{
"IronQr.License.LicenseKey": "My key"
}
Sonuç
Bu makalede, IronQR kullanarak ASP.NET Core'da QR kodları nasıl oluşturulacağını inceledik. IronQR'nin gücünden yararlanarak, geliştiriciler web uygulamalarına kolayca QR kodu oluşturma işlevselliği entegre edebilir. Biletleme, kimlik doğrulama veya 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 sonsuz olanaklar dünyasının kilidini açın.
Sıkça Sorulan Sorular
ASP.NET Core'da QR kodları nasıl oluşturabilirim?
ASP.NET Core'da QR kodları oluşturmak için IronQR kütüphanesini kullanabilirsiniz. Visual Studio'da yeni bir ASP.NET projesi oluşturarak başlayın, Paket Yöneticisi aracılığıyla IronQR'u yükleyin ve kullanıcı dostu API'sini kullanarak QR kodları oluşturmak için kodu uygulayın.
ASP.NET Core'da QR kodları için hangi özelleştirme seçenekleri mevcuttur?
IronQR, ASP.NET Core'da QR kodları için yeniden boyutlandırma, kenar boşluklarını ayarlama, renk değişiklikleri ve logo ekleme gibi çeşitli özelleştirme seçenekleri sunar. Bu seçenekler QrStyleOptions sınıfı kullanılarak yönetilebilir.
ASP.NET Core ile QR kod oluşturulurken hata düzeltmesi nasıl çalışır?
IronQR, ASP.NET Core'da QR kodları oluştururken hata düzeltme seviyelerini yönetmenize olanak tanır. Bu, QR kodlarının güvenilir tarama için gereken hata direncine sahip olmasını sağlar.
ASP.NET Core'da farklı görüntü formatlarından QR kodları okuyabilir miyim?
Evet, ASP.NET Core'da IronQR ile jpg, png, svg, bmp, gif, tif ve tiff gibi çeşitli görüntü formatlarından QR kodlarını okuyabilirsiniz. Ayrıca System.Drawing Bitmaps ve IronDrawing Images (AnyBitmap) formatları da desteklenmektedir.
Tam lisans olmadan IronQR'u test etmek mümkün mü?
Evet, Iron Software web sitesinden bir IronQR deneme lisansı edinebilirsiniz. Deneme, kütüphaneyi test etmenize ve test aşamasında oluşturulan QR kodlarından filigranları kaldırmanıza olanak tanır, lisansı appSettings.json dosyasına yerleştirerek.
Web uygulamalarında QR kodları kullanmanın avantajları nelerdir?
QR kodları, verimli veri depolama ve iletimine olanak tanıyarak web uygulamaları için faydalıdır. Özellikle biletleme sistemleri, kimlik doğrulama ve envanter yönetimi gibi uygulamalarda faydalıdır, bilgi kodlamak ve paylaşmak için dinamik bir yol sunar.
Makine öğrenimi, ASP.NET Core'da QR kod tespitini nasıl geliştirir?
IronQR, QR kod tespiti için gelişmiş bir özel Makine Öğrenimi modeli kullanır ve kod tanımada yüksek doğruluk ve güvenilirlik sağlar. Daha hafif bir çözüm tercih eden kullanıcılar için, ML olmayan Slim Mode seçeneği de mevcuttur.




