Altbilgi içeriğine atla
IRONQR KULLANıMı

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

  1. Visual Studio kullanarak ASP.Net projesi oluşturun
  2. Paket Yöneticisinden IronQR kütüphanesini kurun
  3. QR Kodu Oluştur
  4. 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:

  1. C#, VB.NET, F#
  2. .NET Core (8, 7, 6, 5 ve 3.1+)
  3. .NET Standard (2.0+)
  4. .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:

  1. Görüntüler (jpg, png, svg, bmp)
  2. Çok sayfalı Görüntüler (gif, tif, tiff)
  3. System.Drawing Bitmaps
  4. 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:

  1. Görüntüler (jpg, png, gif, tiff, bmp)
  2. System.Drawing Görseller
  3. Akışlar (MemoryStream, byte[])
  4. 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

ASP .NET Core'da QR Kodları Nasıl Oluşturulur: Şekil 1 - ASP.NET CORE web uygulama şablonunu seçin

Proje Adı ve konumunu belirtin

ASP .NET Core'da QR Kodları Nasıl Oluşturulur: Şekil 2 - Projeye isim verin ve kaydetmek istediğiniz konumu belirtin

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

ASP .NET Core'da QR Kodları Nasıl Oluşturulur: Şekil 3 - Doğru .NET sürümünü seçin.

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

ASP .NET Core'da QR Kodları Nasıl Oluşturulur: Şekil 4 - Şablon kodunu oluşturmak 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.

ASP .NET Core'da QR Kodları Nasıl Oluşturulur: Şekil 5 - IronOCR'u Visual Studio Paket Yöneticisi'ni kullanarak aratıp yükleyin

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

ASP .NET Core'da QR Kodları Nasıl Oluşturulur: Şekil 6 - IronOCR'u NuGet Paket Yöneticisi ile aratın

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
$vbLabelText   $csharpLabel

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.

ASP .NET Core'da QR Kodları Nasıl Oluşturulur: Şekil 7 - Klasöre sağ tıklayarak yeni bir denetimci ekleyin ve isim verin

Boş Kontrolör'ü seçin.

ASP .NET Core'da QR Kodları Nasıl Oluşturulur: Şekil 8 - Açılan pencerede Boş Denetimci'yi seçin

Bir ad verin.

ASP .NET Core'da QR Kodları Nasıl Oluşturulur: Şekil 9 - Denetimciye isim 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
$vbLabelText   $csharpLabel

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. Bir QRCodeModel nesnesini (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.

ASP .NET Core'da QR Kodları Nasıl Oluşturulur: Şekil 10 - `QrCodeController` sınıfına yeni bir görünüm ekleyin

"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.

ASP .NET Core'da QR Kodları Nasıl Oluşturulur: Şekil 11 - Görünüm Ekle seçeneğini seçin, ardından Razor Görünümü ve Ekle'yi seçin

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

ASP .NET Core'da QR Kodları Nasıl Oluşturulur: Şekil 12 - Daha önce oluşturulan `Create` şablonunu 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
$vbLabelText   $csharpLabel

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}")
$vbLabelText   $csharpLabel

Bu eylem varsayılan rotayı HomeController'den bizim QrCodeController'imize değiştirecektir.

Şimdi projeyi derleyin ve çalıştırın.

ASP .NET Core'da QR Kodları Nasıl Oluşturulur: Şekil 13 - Projeden örnek ana sayfa

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.

ASP .NET Core'da QR Kodları Nasıl Oluşturulur: Şekil 14 - Herhangi bir metin girin ve yeni bir QR kodu oluşturmak için oluştur'a tıklayın ve IronQR'u kullanın

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
$vbLabelText   $csharpLabel

Çıktı

ASP .NET Core'da QR Kodları Nasıl Oluşturulur: Şekil 15 - QR kodunun rengini programatik olarak değiştirme

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.

Curtis Chau
Teknik Yazar

Curtis Chau, Bilgisayar Bilimleri alanında Lisans Derecesine (Carleton Üniversitesi) sahip ve Node.js, TypeScript, JavaScript ve React konularında uzmanlaşmış ön uç geliştirmeyle ilgileniyor. Sezgisel ve estetik açıdan hoş kullanıcı arayüzleri oluşturma tutkunu, Curtis modern çerçevelerle çalışmayı ve iyi yapı...

Daha Fazla Oku

Iron Destek Ekibi

Haftada 5 gün, 24 saat çevrimiçiyiz.
Sohbet
E-posta
Beni Ara