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

QR Kodu .NET Core: C#'ta QR Kodları Okuyun ve Oluşturun

.NET Core üzerinde web veya enterprise uygulamaları geliştirirken, envanter takip, ödeme akışı veya iki faktörlü kimlik doğrulama için QR kod desteği sıkça karşılaşılan bir gereksinimdir. Geliştirme döngülerini düşük seviyeli kodlama algoritmaları üzerinde harcamak yerine, tüm iş akışını yöneten özel bir kütüphaneye başvurabilirsiniz. IronQR, temel oluşturma sürecinden ML destekli okumaya ve gelişmiş hata düzeltmeye kadar her şeyi kapsayan, .NET için eksiksiz bir QR kod çözümü sunar.

Kendi başınıza denemeye hazır mısınız? Bugün ücretsiz denemenizi başlatın ve projenize ne kadar hızlı QR işlevselliği ekleyebileceğinizi görün.

NuGet NuGet ile yükleyin

PM >  Install-Package IronQR

NuGet'te hızlı kurulum için https://www.nuget.org/packages/IronQR'i kontrol edin. 10 milyonun üzerinde indirme ile, C# ile PDF geliştirmeyi dönüştürüyor. DLL de indirebilirsiniz.

QR Kod Kütüphanesi Nasıl Yüklenir?

IronQR'yi NuGet ile yüklemek saniyeler alır. Visual Studio'yu açın, Tools > NuGet Package Manager > Manage NuGet Packages for Solution bölümüne gidin, IronQR'yi arayın ve Install'a tıklayın. Paket, minimal bağımlılıklara sahiptir ve kutudan çıktığı gibi Windows, macOS ve Linux'u hedeflemektedir.

Install-Package IronQR

IronQR, .NET Core 6, 7, 8, 9 ve 10 yanı sıra .NET Framework 4.6.2 ve sonrası sürümleri hedefler. Çapraz platform projeleri için, SkiaSharp entegrasyonu, Windows dışı çalışma zamanlarında görüntü işleme işlemlerini yönetir. Kütüphane, ASP.NET Core web uygulamaları, konsol uygulamaları ve masaüstü çözümleri ile ek bir çalışma zamanı yapılandırması gerektirmeden çalışır. Kurulumdan sonra, tüm gerekli genişletme yöntemleri ve türleri hemen kullanılabilir hale gelir.

Bir Resimden Temel bir QR Kodunu Nasıl Okursunuz?

Görüntü dosyalarından QR kod verilerini okumak sadece birkaç satır kod gerektirir. QrReader sınıfı, resim kalitesini değerlendiren ve doğru segment modunu otomatik olarak seçen gelişmiş bir makine öğrenim modeli kullanır, bu da giriş resmi ideal olmasa bile size doğru sonuçlar verir.

using IronQr;
using IronSoftware.Drawing;

// Load image containing QR code
var inputBmp = AnyBitmap.FromFile("qr-sample.png");
// Create QrImageInput from the bitmap
QrImageInput imageInput = new QrImageInput(inputBmp);
// Initialize QR Reader with ML model
QrReader reader = new QrReader();
// Read and decode all QR codes in the image
IEnumerable<QrResult> results = reader.Read(imageInput);
// Output decoded text strings
foreach (var qrCode in results)
{
    Console.WriteLine($"QR Code Value: {qrCode.Value}");
    Console.WriteLine($"URL: {qrCode.Url}");
}
using IronQr;
using IronSoftware.Drawing;

// Load image containing QR code
var inputBmp = AnyBitmap.FromFile("qr-sample.png");
// Create QrImageInput from the bitmap
QrImageInput imageInput = new QrImageInput(inputBmp);
// Initialize QR Reader with ML model
QrReader reader = new QrReader();
// Read and decode all QR codes in the image
IEnumerable<QrResult> results = reader.Read(imageInput);
// Output decoded text strings
foreach (var qrCode in results)
{
    Console.WriteLine($"QR Code Value: {qrCode.Value}");
    Console.WriteLine($"URL: {qrCode.Url}");
}
Imports IronQr
Imports IronSoftware.Drawing

' Load image containing QR code
Dim inputBmp = AnyBitmap.FromFile("qr-sample.png")
' Create QrImageInput from the bitmap
Dim imageInput As New QrImageInput(inputBmp)
' Initialize QR Reader with ML model
Dim reader As New QrReader()
' Read and decode all QR codes in the image
Dim results As IEnumerable(Of QrResult) = reader.Read(imageInput)
' Output decoded text strings
For Each qrCode In results
    Console.WriteLine($"QR Code Value: {qrCode.Value}")
    Console.WriteLine($"URL: {qrCode.Url}")
Next
$vbLabelText   $csharpLabel

Girdi QR Kodu

QR Kod Oluşturucu .NET Core: Kodun Sadece Birkaç Satırıyla QR Kodlarını Oku ve Üret: Görüntü 1 - Giriş QR Kodu

Çıktı

QR Kod Oluşturucu .NET Core: Kodun Sadece Birkaç Satırıyla QR Kodlarını Oku ve Üret: Görüntü 2 - Örnek QR Kod tarama çıktısı

QrReader.Read() yöntemi QrImageInput'yi işler ve bir IEnumerable<QrResult> döndürür, her bir sonuç çözülmüş metni, eğer varsa kodlanmış URL'yi ve resimdeki QR sembolünün mekansal konumunu taşır. Kütüphane, bayt dizileri, dosya yolları ve AnyBitmap nesnelerini kabul eder, bu da size diskten, veritabanından veya canlı bir kamera akışından okuma yaparken herhangi bir proje mimarisi için esneklik sağlar.

Okuyucunun temelini oluşturan ML modeli, IronQR'yi tamamen algoritmik kütüphanelerden ayırır. Gerçek dünya kusurlarını, örneğin hareket bulanıklığı, kısmi örtülme ve düzensiz ışıklandırmayı, manuel ön işleme veya eşik ayarlaması gerektirmeden işler.

Gelişmiş QR Kodu Verilerini Nasıl Çıkartırsınız?

IronQR, temel değer kod çözmenin ötesinde, her taranan sembolden koordinatlar, ham veri segmentleri ve modül seviyesinde bilgileri ortaya çıkarır. Bu, bir QR kodunun sayfada tam olarak nerede göründüğünü bilmeniz gereken belge işleme iş akışları veya tek bir görüntüde birden fazla kodu ele alması gereken uygulamalar için esastır.

using IronQr;
using IronSoftware.Drawing;

var inputBmp = AnyBitmap.FromFile("document-with-qr.png");
QrImageInput imageInput = new QrImageInput(inputBmp);
QrReader reader = new QrReader();
IEnumerable<QrResult> results = reader.Read(imageInput);
foreach (var qrCode in results)
{
    // Access decoded value
    Console.WriteLine($"Data: {qrCode.Value}");
    // Get corner coordinate positions
    foreach (PointF point in qrCode.Points)
    {
        Console.WriteLine($"Position: {point.X}, {point.Y}");
    }
}
using IronQr;
using IronSoftware.Drawing;

var inputBmp = AnyBitmap.FromFile("document-with-qr.png");
QrImageInput imageInput = new QrImageInput(inputBmp);
QrReader reader = new QrReader();
IEnumerable<QrResult> results = reader.Read(imageInput);
foreach (var qrCode in results)
{
    // Access decoded value
    Console.WriteLine($"Data: {qrCode.Value}");
    // Get corner coordinate positions
    foreach (PointF point in qrCode.Points)
    {
        Console.WriteLine($"Position: {point.X}, {point.Y}");
    }
}
Imports IronQr
Imports IronSoftware.Drawing

Dim inputBmp = AnyBitmap.FromFile("document-with-qr.png")
Dim imageInput As New QrImageInput(inputBmp)
Dim reader As New QrReader()
Dim results As IEnumerable(Of QrResult) = reader.Read(imageInput)

For Each qrCode In results
    ' Access decoded value
    Console.WriteLine($"Data: {qrCode.Value}")
    ' Get corner coordinate positions
    For Each point As PointF In qrCode.Points
        Console.WriteLine($"Position: {point.X}, {point.Y}")
    Next
Next
$vbLabelText   $csharpLabel

Girdi QR

QR Kod Oluşturucu .NET Core: Kodun Sadece Birkaç Satırıyla QR Kodlarını Oku ve Üret: Görüntü 3 - Giriş QR kodu

Gelişmiş QR Okuma Sonuçları

QR Kod Oluşturucu .NET Core: Kodun Sadece Birkaç Satırıyla QR Kodlarını Oku ve Üret: Görüntü 4 - Gelişmiş QR veri çıkarma için sonuçlar

QrResult.Points koleksiyonu, algılanan QR sembolünün piksel boyutlarındaki dört köşe koordinatını içerir. Uygulamanız bunları döküman görüntüleri üzerinde çerçeve kutuları yerleştirmek, daha fazla işleme için QR alanını kesmek ya da fiziksel koordinatları mantıksal döküman pozisyonlarına haritalayan bir alt sisteme konum verilerini aktarmak için kullanabilir.

IronQR, özel yerleştirilmiş logolar, hasarlı modüller veya düşük çözünürlüklü girdiler içeren kodları aynı makine öğrenim hattı üzerinden işler. Kütüphane ayrı ön işleme adımlarına ihtiyaç duymaz -- algılama ve kod çözme tek bir Read() çağrısında gerçekleşir.

Hata Düzeltme Seviyeleri QR Kod Kalitesini Nasıl Etkiler?

Hata düzeltme, bir QR tarayıcının kodun bir kısmı örtüldüğünde, kötü yazdırıldığında veya fiziksel olarak zarar gördüğünde bile orijinal verileri kurtarmasını sağlayan mekanizmadır. QR Kod standardı, her biri depolama kapasitesini hasar toleransına karşı takas eden dört seviyeyi tanımlar -- Düşük (L), Orta (M), Çeyrek (Q) ve Yüksek (H).

Düzey Kurtarma Kapasitesi En İyi Kullanım
L ~7% Temiz dijital ekranlar, maksimum veri yoğunluğu
M ~%15 Genel yazdırma uygulamaları
Q ~25% Endüstriyel etiketler, orta düzeyde aşınma beklenir
H ~30% Logolar yerleştirilmiş, dış mekan veya yüksek aşınma yüzeyleri

QR kodları oluştururken, daha yüksek bir hata düzeltme seviyesi belirtmek, çıktıların gerçek tarama koşullarında dayanıklılığını sağlar:

using IronQr;
using IronSoftware.Drawing;

// Configure QR options with high error correction
var qrOptions = new QrOptions(QrErrorCorrectionLevel.High, 20);
// Generate a QR code with specified error correction
QrCode myQr = QrWriter.Write("https://ironsoftware.com", qrOptions);
// Save as PNG image
AnyBitmap qrImage = myQr.Save();
qrImage.SaveAs("high-error-correction-qr.png");
using IronQr;
using IronSoftware.Drawing;

// Configure QR options with high error correction
var qrOptions = new QrOptions(QrErrorCorrectionLevel.High, 20);
// Generate a QR code with specified error correction
QrCode myQr = QrWriter.Write("https://ironsoftware.com", qrOptions);
// Save as PNG image
AnyBitmap qrImage = myQr.Save();
qrImage.SaveAs("high-error-correction-qr.png");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Çıktı

QR Kod Oluşturucu .NET Core: Kodun Sadece Birkaç Satırıyla QR Kodlarını Oku ve Üret: Görüntü 5 - Yüksek hata düzeltme seviyesine sahip oluşturulmuş QR Kodu

QrOptions yapıcı, hata düzeltme seviyesi ve maksimum sürüm numarasını kabul eder. 40. sürüm kodları 7.089 adede kadar sayısal karakter depolarken, 1. sürüm kodları yalnızca 41 karakter tutar. Daha düşük bir maksimum sürüm ayarlamak, bir grup içinde tutarlı fiziksel boyutlara ihtiyaç duyduğunuzda çıkış boyutunu sınırlar. Hata düzeltme seviyesi ne kadar yüksekse, yedeklilik için o kadar fazla modül ayrılır ve bu da herhangi bir sürümdeki net veri kapasitesini azaltır.

Hata toleransı özelliği IronQR'de bu özellik ile birlikte çalışır -- daha yüksek düzeltme seviyelerinde üretilen kodları okurken, kütüphane yalnızca algoritmik bir kod çözücü ile tamamen başarısız olacak kodlardan veri kurtarır.

Uluslararası Karakterlerle QR Kodları Nasıl Oluşturursunuz?

IronQR, tam kapsamlı QR kodlama modlarını destekler: sayısal, alfasayısal, byte ve Kanji. Japonca metin ve diğer Unicode içeriği için, kütüphane en yerden/verimli kodlamayı otomatik olarak seçer:

using IronQr;
using IronSoftware.Drawing;

// Generate QR that encodes Japanese Unicode text
QrCode japaneseQr = QrWriter.Write("こんにちは世界");
// The library selects Kanji mode automatically
AnyBitmap qrImage = japaneseQr.Save();
qrImage.SaveAs("japanese-qr.png");
using IronQr;
using IronSoftware.Drawing;

// Generate QR that encodes Japanese Unicode text
QrCode japaneseQr = QrWriter.Write("こんにちは世界");
// The library selects Kanji mode automatically
AnyBitmap qrImage = japaneseQr.Save();
qrImage.SaveAs("japanese-qr.png");
Imports IronQr
Imports IronSoftware.Drawing

' Generate QR that encodes Japanese Unicode text
Dim japaneseQr As QrCode = QrWriter.Write("こんにちは世界")
' The library selects Kanji mode automatically
Dim qrImage As AnyBitmap = japaneseQr.Save()
qrImage.SaveAs("japanese-qr.png")
$vbLabelText   $csharpLabel

QR Kodu Çıkışı

QR Kod Oluşturucu .NET Core: Kodun Sadece Birkaç Satırıyla QR Kodlarını Oku ve Üret: Görüntü 6 - Çıktı QR Kodu

Kanji kodlaması, modül başına sekiz bit yerine iki bayt paketler, bu nedenle Japonca bir QR kodu, aynı sürümde bir UTF-8 bayt modu eşdeğerinden önemli ölçüde daha fazla karakter depolar. Karışık içerik için -- bir URL sonrasında Japonca metin gibi -- IronQR girdiyi parçalara ayırır ve her parçayı optimal modda kodlar. Segment sınırlarını belirtmenize veya kodlama yardımcılarını elle çağırmanıza gerek yok; kodlama hattı bunu sizin için halleder.

Bu otomatik seçim, ayrıca tarayıcılara standart olmayan karakter setlerinin kullanıldığını bildiren Genişletilmiş Kanal Yorumlama (ECI) işaretlerini de kapsar. Uluslararası pazarları hedefleyen uygulamalar, herhangi bir Unicode dizesini doğrudan QrWriter.Write()'ye ayrı bir yapılandırma olmadan iletebilir.

Yapılandırılmış QR Verileri İçin Yük Üreteçleri Nasıl Kullanılır?

Düz bir URL'yi kodlayan bir QR kodu basit bağlantı paylaşımı için işe yarar, ancak birçok uygulama, yapılandırılmış verileri kodlamaya ihtiyaç duyar -- WiFi kimlik bilgileri, vCard formatında iletişim kartları veya etkinlik verileri. Bu yükleri elle biçimlendirmek hataya açıktır; Eksik bir noktalı virgül veya hatalı alan sırası, tarayıcıların veriyi yanlış yorumlamasına neden olacaktır.

IronQR, bu yapılandırılmış dizeleri doğru bir şekilde oluşturan yük yardımcıları sağlar:

using IronQr;
using IronSoftware.Drawing;

// Generate QR code with URL payload
var urlQrCode = QrWriter.Write("https://ironsoftware.com/csharp/qr/");
// Save QR as PNG image file
AnyBitmap qrImage = urlQrCode.Save();
qrImage.SaveAs("url-qr-code.png");
Console.WriteLine("QR code generated successfully.");
using IronQr;
using IronSoftware.Drawing;

// Generate QR code with URL payload
var urlQrCode = QrWriter.Write("https://ironsoftware.com/csharp/qr/");
// Save QR as PNG image file
AnyBitmap qrImage = urlQrCode.Save();
qrImage.SaveAs("url-qr-code.png");
Console.WriteLine("QR code generated successfully.");
Imports IronQr
Imports IronSoftware.Drawing

' Generate QR code with URL payload
Dim urlQrCode = QrWriter.Write("https://ironsoftware.com/csharp/qr/")
' Save QR as PNG image file
Dim qrImage As AnyBitmap = urlQrCode.Save()
qrImage.SaveAs("url-qr-code.png")
Console.WriteLine("QR code generated successfully.")
$vbLabelText   $csharpLabel

Oluşturulan QR Kodu

QR Kod Oluşturucu .NET Core: Kodun Sadece Birkaç Satırıyla QR Kodlarını Oku ve Üret: Görüntü 7 - URL'den oluşturulmuş QR Kodu

QrWriter.Write() yöntemi ya düz bir dize ya da yapılandırılmış bir yük nesnesi kabul eder. WiFi ağları için yük, SSID, şifre ve güvenlik türünü Android ve iOS tarayıcılarının tanıdığı formatta kodlar. İletişim bilgileri için çıktı, çoğu mobil QR okuyucusu tarafından kullanılan MeCard standardını takip eder. oluşturma özellikleri sayfası, tüm desteklenen yük türlerini ve gerekli alanlarını belgeler.

Kütüphane, ayarlanabilir piksel boyutlarında görüntüler oluşturur. Üretim amaçlı kullanımda, en az 200x200 piksel boyutlarında kodlar oluşturmak, tipik akıllı telefon mesafelerinden güvenilir tarama sağlar. Daha büyük boyutlar, tarama mesafesinin bir metreyi aştığı açık hava veya baskılı uygulamalarda avantaj sağlar.

QR Kodu Görünümünü Nasıl Özelleştirirsiniz?

IronQR, üretilen kodların görsel görünümü üzerinde kontrol sahibi olmanızı sağlayarak taranabilirlikten ödün vermez. Ön plan ve arka plan renklerini değiştirebilir, özel markalama uygulayabilir veya bir logoyu merkezin sessiz bölgesine yerleştirebilirsiniz.

using IronQr;
using IronSoftware.Drawing;

// Define custom colors for the QR code
var darkColor = Color.FromArgb(30, 30, 120);   // Deep navy foreground
var lightColor = Color.White;

var options = new QrOptions(QrErrorCorrectionLevel.High, maxVersion: 20)
{
    BackgroundColor = lightColor,
    Color = darkColor,
    // Embed a logo image into the QR center
    Logo = AnyBitmap.FromFile("logo.png")
};

QrCode styledQr = QrWriter.Write("https://ironsoftware.com/csharp/qr/", options);
AnyBitmap output = styledQr.Save();
output.SaveAs("branded-qr.png");
using IronQr;
using IronSoftware.Drawing;

// Define custom colors for the QR code
var darkColor = Color.FromArgb(30, 30, 120);   // Deep navy foreground
var lightColor = Color.White;

var options = new QrOptions(QrErrorCorrectionLevel.High, maxVersion: 20)
{
    BackgroundColor = lightColor,
    Color = darkColor,
    // Embed a logo image into the QR center
    Logo = AnyBitmap.FromFile("logo.png")
};

QrCode styledQr = QrWriter.Write("https://ironsoftware.com/csharp/qr/", options);
AnyBitmap output = styledQr.Save();
output.SaveAs("branded-qr.png");
Imports IronQr
Imports IronSoftware.Drawing

' Define custom colors for the QR code
Dim darkColor As Color = Color.FromArgb(30, 30, 120) ' Deep navy foreground
Dim lightColor As Color = Color.White

Dim options As New QrOptions(QrErrorCorrectionLevel.High, maxVersion:=20) With {
    .BackgroundColor = lightColor,
    .Color = darkColor,
    ' Embed a logo image into the QR center
    .Logo = AnyBitmap.FromFile("logo.png")
}

Dim styledQr As QrCode = QrWriter.Write("https://ironsoftware.com/csharp/qr/", options)
Dim output As AnyBitmap = styledQr.Save()
output.SaveAs("branded-qr.png")
$vbLabelText   $csharpLabel

Bir logoyu gömmek, etkin veri alanını azaltır, bu nedenle kütüphane, bir logo sağlandığında hata düzeltme seviyesiHgerektirir. Merkezdeki ayrılmış sessiz bölge,Hseviyesinin geri kazanım kapasitesi dahilinde olan kod yüzeyinin yaklaşık %30'unu kapsar. Kütüphane, bu kısıtlamayı otomatik olarak uygular -- eğer bir logo ile birlikte düşük bir hata düzeltme seviyesi ayarlarsanız, IronQR hatalı taranan bir kod üretmek yerine açıklayıcı bir mesajla bir istisna oluşturur.

ASP.NET Core uygulamaları için, ASP.NET Core QR kodu oluşturma eğitimi, oluşturulan QR kodlarını bir controller action'dan resim cevabı olarak nasıl sunabileceğinizi gösterir. Çıkış akışı, yanıtı doğrudan ara dosya I/O olmadan yazar ve bu, yüksek trafikli uç noktalar için gecikmeyi düşük tutar.

ASP.NET Core Uygulamasında QR Kodları Nasıl Okursunuz?

Yüklenen resimlerden, belge işleme hatlarından veya otomatik denetim sistemlerinden sunucu tarafında QR kodları taramak, okuma API'sinin yaygın bir kullanım durumudur. ASP.NET QR kodu tarayıcı kılavuzu, tam denetleyici ve servis kurulumunu kapsar, ancak çekirdek okuma deseni, bir konsol uygulamasıyla aynıdır:

using IronQr;
using IronSoftware.Drawing;
using Microsoft.AspNetCore.Mvc;

[ApiController]
[Route("api/qr")]
public class QrScanController : ControllerBase
{
    [HttpPost("scan")]
    public IActionResult Scan(IFormFile imageFile)
    {
        using var stream = imageFile.OpenReadStream();
        var bitmap = AnyBitmap.FromStream(stream);
        var imageInput = new QrImageInput(bitmap);
        var reader = new QrReader();
        var results = reader.Read(imageInput);

        var decoded = results.Select(r => new { r.Value, r.Url }).ToList();
        return Ok(decoded);
    }
}
using IronQr;
using IronSoftware.Drawing;
using Microsoft.AspNetCore.Mvc;

[ApiController]
[Route("api/qr")]
public class QrScanController : ControllerBase
{
    [HttpPost("scan")]
    public IActionResult Scan(IFormFile imageFile)
    {
        using var stream = imageFile.OpenReadStream();
        var bitmap = AnyBitmap.FromStream(stream);
        var imageInput = new QrImageInput(bitmap);
        var reader = new QrReader();
        var results = reader.Read(imageInput);

        var decoded = results.Select(r => new { r.Value, r.Url }).ToList();
        return Ok(decoded);
    }
}
Imports IronQr
Imports IronSoftware.Drawing
Imports Microsoft.AspNetCore.Mvc

<ApiController>
<Route("api/qr")>
Public Class QrScanController
    Inherits ControllerBase

    <HttpPost("scan")>
    Public Function Scan(imageFile As IFormFile) As IActionResult
        Using stream = imageFile.OpenReadStream()
            Dim bitmap = AnyBitmap.FromStream(stream)
            Dim imageInput = New QrImageInput(bitmap)
            Dim reader = New QrReader()
            Dim results = reader.Read(imageInput)

            Dim decoded = results.Select(Function(r) New With {Key .Value = r.Value, Key .Url = r.Url}).ToList()
            Return Ok(decoded)
        End Using
    End Function
End Class
$vbLabelText   $csharpLabel

AnyBitmap.FromStream() yöntemi, herhangi bir okunabilir akışı kabul eder, bu nedenle aynı kod yolu bir form üzerinden yüklenen dosyalar, blob depolamasından alınan resimler veya bir video hattından çıkarılan kareler için çalışır. Denetleyici, dosya sisteminin yalnızca okunabilir olabileceği konteynere alınmış dağıtımlarda önem taşıyan diske herhangi bir geçici dosya yazmaz.

Yüksek veri işleme kapasiteli senaryolar için, uygulama ömrü başına bir kez QrReader oluşturun, çünkü makine öğrenim modeli yükleme maliyeti ilk oluşturulmada ödenir. Aynı örnek üzerinde yapılan sonraki Read() çağrıları, iş parçacığı güvenliğindedir ve yüklenmiş modeli paylaşır.

.NET MAUI Uygulamasında QR Kodları Nasıl Oluşturulur?

.NET MAUI QR kod öğreticisi, iOS, Android, macOS ve Windows üzerinde tam çapraz platform üretimini göstermektedir. IronQR, Windows dışı platformlarda çalışırken SkiaSharp render arka planını kullanır ve tüm MAUI hedeflerinde tutarlı çıktı sunar.

using IronQr;
using IronSoftware.Drawing;

// Generate QR and convert to a byte array for display in MAUI
QrCode qr = QrWriter.Write("https://ironsoftware.com/csharp/qr/");
AnyBitmap bitmap = qr.Save();
byte[] imageBytes = bitmap.ExportBytes();

// Bind imageBytes to an <Image Source> in your MAUI page
using IronQr;
using IronSoftware.Drawing;

// Generate QR and convert to a byte array for display in MAUI
QrCode qr = QrWriter.Write("https://ironsoftware.com/csharp/qr/");
AnyBitmap bitmap = qr.Save();
byte[] imageBytes = bitmap.ExportBytes();

// Bind imageBytes to an <Image Source> in your MAUI page
Imports IronQr
Imports IronSoftware.Drawing

' Generate QR and convert to a byte array for display in MAUI
Dim qr As QrCode = QrWriter.Write("https://ironsoftware.com/csharp/qr/")
Dim bitmap As AnyBitmap = qr.Save()
Dim imageBytes As Byte() = bitmap.ExportBytes()

' Bind imageBytes to an <Image Source> in your MAUI page
$vbLabelText   $csharpLabel

Mobil hedeflerde, ExportBytes(), doğrudan bir StreamImageSource içine besleyebileceğiniz veya bir ImageButton'e yazabileceğiniz bir PNG bayt dizisi döndürür. MAUI iskeleti, platforma özel kod yolları gerektirmez -- aynı üretim mantığı, dört MAUI hedefinin tümünde aynı şekilde çalışır.

VB.NET projeleri için API yüzeyi aynıdır; sadece sözdizimi farklıdır. Kütüphane, ayrı bir VB.NET derlemesi gerektirmeyen tek bir NuGet paketi ile birlikte gelir.

Sonraki Adımlarınız Neler?

IronQR, .NET'te QR kodu yaşam döngüsünün tamamını kapsar - temel oluşturma ve yapılandırılmış yük kodlamasından, hasar görmüş veya markalı kodların makine öğrenimi destekli okunmasına kadar. Kütüphane, Kanji kodlaması, hata düzeltme yapılandırması ve platformlar arası görsel çıktıyı yönetir, böylece siz uygulamanızın özel mantığına odaklanabilirsiniz.

Öğrendiklerinizi pratiğe dökmek için:

Sıkça Sorulan Sorular

IronQR hangi .NET sürümlerini destekler?

IronQR, .NET Core 6, 7, 8, 9 ve 10 ile .NET Framework 4.6.2 ve üstünü destekler. Ayrıca .NET Standard 2.0+’ı hedefler, bu da onu Xamarin, .NET MAUI, Blazor ve ASP.NET Core projeleriyle uyumlu hale getirir.

C#'ta bir görüntü dosyasından QR kodu nasıl okunur?

Görseli `AnyBitmap.FromFile()` kullanarak yükleyin, bir `QrImageInput`'a iletin, ardından `QrReader.Read()` çağrısı yapın. Yöntem, her sonuçta çözülen değer, URL ve köşe koordinatlarını içeren bir `IEnumerable` döner.

Dört QR kod hata düzeltme seviyesi nedir?

Dört seviye Düşük (L, ~%7 iyileşme), Orta (M, ~%15), Çeyrek (Q, ~%25) ve Yüksek (H, ~%30). Yüksek seviyeler yedek modüller ekleyerek net veri kapasitesini azaltır ancak zarar görmüş veya kısmen gizlenmiş kodlar üzerindeki tarama güvenilirliğini artırır.

IronQR, içinde logo bulunan veya kısmen hasar görmüş QR kodlarını okuyabilir mi?

Evet. IronQR'nin ML destekli tespit modeli, kısmen hasar görmüş kodlar, gömülü logolar, hareket bulanıklığı ve düşük çözünürlüklü girişleri manuel ön işleme olmadan ele alır.

IronQR ile bir QR koduna logo nasıl gömülür?

`QrOptions` nesnesi üzerinde `Logo` özelliğini logo görüntünüzün bir `AnyBitmap`'ına ayarlayın ve hata düzeltme seviyesini Yüksek olarak ayarlayın. IronQR, yaklaşık olarak kod yüzeyinin %30'unu kaplayan bir merkezi logo nedeniyle bu sınırlamayı otomatik olarak zorlar.

IronQR Japon ve diğer Unicode karakterleri destekler mi?

Evet. Herhangi bir Unicode dizisini `QrWriter.Write()`'a iletin ve kütüphane, Japon karakterler için otomatik olarak Kanji modunu veya diğer Unicode içerikler için ECI işaretçileriyle bayt modunu seçer.

ASP.NET Core uygulamasında QR kodları nasıl üretilir?

Yüklenen görselleri okumak için `AnyBitmap.FromStream()` ve kod üretmek için `QrWriter.Write()` kullanın. Çıkışı `image/png` MIME türü ile bir `FileContentResult` olarak geri döndürün. ML model yükleme maliyetini aşmak için `QrReader`'i bir tekil olarak başlatın.

IronQR çapraz platform mu?

Evet. IronQR, Windows dışı platformlarda SkiaSharp yerleştirme arka planını kullanarak, .NET MAUI aracılığıyla macOS, Linux, iOS ve Android'de tutarlı QR üretimi ve okuması sağlar.

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