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

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

  1. Visual Studio kullanarak bir ASP.Net projesi oluşturun
  2. Paket Yöneticisi'nden IronQR kütüphanesini yükleyin
  3. QR Kodu Oluşturun
  4. 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:

  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 & 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:

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

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

ASP .NET Core'da QR Kodları Nasıl Üretilir: Şekil 1 - ASP.NET CORE web uygulaması şablonunu seçin

Proje Adı ve konumu sağlayın

ASP .NET Core'da QR Kodları Nasıl Üretilir: Şekil 2 - Projeyi ve kaydedilmek istenilen konumu adlandırın

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

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

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

ASP .NET Core'da QR Kodları Nasıl Üretilir: Şekil 4 - Şablon kodunu üretmek için

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.

ASP .NET Core'da QR Kodları Nasıl Üretilir: Şekil 5 - IronOCR'yi Visual Studio Paket Yöneticisi kullanarak arayın ve yükleyin

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

ASP .NET Core'da QR Kodları Nasıl Üretilir: Şekil 6 - NuGet Paket Yöneticisi kullanarak IronOCR'yi arayın

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

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.

ASP .NET Core'da QR Kodları Nasıl Üretilir: Şekil 7 - Klasöre tıklayarak ve bir ad vererek yeni bir denetleyici ekleyin

Boş Denetleyiciyi seçin.

ASP .NET Core'da QR Kodları Nasıl Üretilir: Şekil 8 - İstekte Boş Denetleyici'yi tıklayın

Bir ad sağlayın.

ASP .NET Core'da QR Kodları Nasıl Üretilir: Şekil 9 - Denetleyiciyi adlandırı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
$vbLabelText   $csharpLabel

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

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

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

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

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

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

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

Bu işlem, varsayılan yolu HomeController'den QrCodeController'ye değiştirecektir.

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

ASP .NET Core'da QR Kodları Nasıl Üretilir: Ş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 Üretilir: Şekil 14 - Herhangi bir metin girin ve IronQR kullanarak yeni bir QR kodu oluşturmak için oluştur'a tıklayın

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

Çıktı

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

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.

Jordi Bardia
Yazılım Mühendisi
Jordi Python, C# ve C++ konularında en yetkin, Iron Software'deki yeteneklerini kullanmadığı zamanlarda; oyun programlıyor. Ürün testi, ürün geliştirme ve araştırma sorumluluklarını paylaşan Jordi, sürekli ürün gelişimine büyük değer katıyor. Çeşitli deneyimleri onu ...
Daha Fazlasını Oku

Iron Destek Ekibi

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