Write QR Codes in C

This article was translated from English: Does it need improvement?
Translated
View the article in English

Giriş

IronQR ile, geliştiriciler popüler görüntü formatları için QR kodları oluşturabilir ve bunları arka plan renkleri, kenar boşlukları, logolar ile özelleştirip hatta PDF'lere ekleyebilirler. İleri düzeyde kullanım için, hata düzeltme ve sürümler üzerinde kontrol de sunar.

Bu makale, IronQR'nin ana özelliklerini örneklerle keşfederek, C# dilinde QR kodları yazmayı ve projelerinizde etkili bir şekilde nasıl kullanacağınızı anlamanıza yardımcı olacak.

İçindekiler

Bugün IronQR ile projenizde ücretsiz bir deneme ile başlayın.

İlk Adım:
green arrow pointer

Girdi Verileri

Metin, URL'ler, Numaralar

IronQR, metin, URL ve numaralar gibi geniş bir veri türünü QR kodlarına dönüştürebilir. Pazarlama ve iletişim için QR kod bağlantıları veya metin, envanter yönetimi için sayısal kodlar veya ikili verileri ya da akışları okunabilir QR kodlarına kodlamak isteyip istemediğinizde, IronQR size ihtiyacınız olan desteği sağlar.

Ayrıca API, anlaşılması kolaydır. QrWriter sınıfı, çeşitli aşırı yüklemeler sunarak farklı veri türlerinin giriş olarak kullanılmasını sağlar, karmaşıklığı azaltır ve süreci kolaylaştırır.

:path=/static-assets/qr/content-code-examples/tutorials/csharp-qr-writing-1.cs
using IronQr;
using IronSoftware.Drawing;

string text = "Hello, World!";
string url = "https://ironsoftware.com/csharp/qr/";
string alphanumeric = "WATERSKU-12356";

// Create QR code
QrCode textQr = QrWriter.Write(text);
// Save QR code as a bitmap
AnyBitmap textQrImage = textQr.Save();
// Save QR code as file
textQrImage.SaveAs("textQr.png");

QrCode urlQr = QrWriter.Write(url);
AnyBitmap urlQrImage = urlQr.Save();
urlQrImage.SaveAs("urlQr.png");

QrCode alphanumericQr = QrWriter.Write(alphanumeric);
AnyBitmap alphanumericQrImage = alphanumericQr.Save();
alphanumericQrImage.SaveAs("alphanumericQr.png");
Imports IronQr
Imports IronSoftware.Drawing

Private text As String = "Hello, World!"
Private url As String = "https://ironsoftware.com/csharp/qr/"
Private alphanumeric As String = "WATERSKU-12356"

' Create QR code
Private textQr As QrCode = QrWriter.Write(text)
' Save QR code as a bitmap
Private textQrImage As AnyBitmap = textQr.Save()
' Save QR code as file
textQrImage.SaveAs("textQr.png")

Dim urlQr As QrCode = QrWriter.Write(url)
Dim urlQrImage As AnyBitmap = urlQr.Save()
urlQrImage.SaveAs("urlQr.png")

Dim alphanumericQr As QrCode = QrWriter.Write(alphanumeric)
Dim alphanumericQrImage As AnyBitmap = alphanumericQr.Save()
alphanumericQrImage.SaveAs("alphanumericQr.png")
$vbLabelText   $csharpLabel

Binary ve Akışlar

Benzer şekilde, daha önce bahsedilen Write yöntemini kullanarak ikili verileri ve akışları QR kodlarına dönüştürebiliriz.

:path=/static-assets/qr/content-code-examples/tutorials/csharp-qr-writing-2.cs
using IronQr;
using IronSoftware.Drawing;
using System.Text;

byte[] bytes = Encoding.UTF8.GetBytes("https://ironsoftware.com/csharp/qr/");

// Create QR code
QrCode bytesQr = QrWriter.Write(bytes);

// Save QR code as a bitmap
AnyBitmap qrImage = bytesQr.Save();

// Save QR code bitmap to file
qrImage.SaveAs("bytesQr.png");
Imports IronQr
Imports IronSoftware.Drawing
Imports System.Text

Private bytes() As Byte = Encoding.UTF8.GetBytes("https://ironsoftware.com/csharp/qr/")

' Create QR code
Private bytesQr As QrCode = QrWriter.Write(bytes)

' Save QR code as a bitmap
Private qrImage As AnyBitmap = bytesQr.Save()

' Save QR code bitmap to file
qrImage.SaveAs("bytesQr.png")
$vbLabelText   $csharpLabel

sınıf Program { static void Main() { // Bir QR kod yazma örneği oluştur QrWriter writer = QrWriter.CreateQrCode();

    // Örnek binary veri
    byte[] veri = { 0x01, 0x02, 0x03, 0x04 };

    // İkili veriyi QR koduna yaz
    yazar.Yaz(veri)
          .Kaydet("binary-qr.png");

    // Bellek akışı kullanılarak örnek
    using (MemoryStream akış = new MemoryStream(veri))
    {
        yazar.Yaz(akış)
              .Kaydet("stream-qr.png");
    }
}

}

Write yöntemi, hem bayt dizilerini hem de akışları girdi olarak kabul eden aşırı yüklemelere sahiptir. Akışlar için, bayt dizisinden bir MemoryStream oluşturabilir ve ardından bunu bir QR koduna dönüştürebiliriz. Bu, kullanıcıların veri parçaları üzerinde daha hassas kontrole sahip olmaları gerektiğinde kullanışlıdır çünkü akışlar daha bellek verimli olabilir.

:path=/static-assets/qr/content-code-examples/tutorials/csharp-qr-writing-3.cs
using IronQr;
using IronSoftware.Drawing;
using System.IO;
using System.Text;

MemoryStream stream = new MemoryStream(Encoding.UTF8.GetBytes("https://ironsoftware.com/csharp/qr/"));

// Create QR code
QrCode streamQr = QrWriter.Write(stream);

// Save QR code as a bitmap
AnyBitmap streamQrImage = streamQr.Save();

// Save QR code bitmap as file
streamQrImage.SaveAs("streamQr.png");
Imports IronQr
Imports IronSoftware.Drawing
Imports System.IO
Imports System.Text

Private stream As New MemoryStream(Encoding.UTF8.GetBytes("https://ironsoftware.com/csharp/qr/"))

' Create QR code
Private streamQr As QrCode = QrWriter.Write(stream)

' Save QR code as a bitmap
Private streamQrImage As AnyBitmap = streamQr.Save()

' Save QR code bitmap as file
streamQrImage.SaveAs("streamQr.png")
$vbLabelText   $csharpLabel

QR Kodları Dışa Aktar

IronQR, farklı dosya formatları gerektiren çeşitli kullanım durumlarına uyum sağlayabilir ve uyarlanabilir. SaveAs yöntemini kullanarak QR kodlarını JPG, PNG, GIF ve TIFF gibi çeşitli formatlarda kaydedebilirsiniz.

Resim Olarak Kaydet

SaveAs yönteminden gelen AnyBitmap, sağlanan dosya yoluna göre dosya biçimini otomatik olarak algılar. Bu örnekte, .png ile biten bir dosya yolu belirttim.

Lütfen dikkate alınSaveAs yöntemini kullanırken, varsayılan bir resim biçimi olmadığını lütfen unutmayın. Belirsiz bir uzantı girerseniz veya dosya yolunda bir yazım hatası yaparsanız, resim yanlış uzantı ile kaydedilecektir.

:path=/static-assets/qr/content-code-examples/tutorials/csharp-qr-writing-4.cs
using IronQr;
using IronSoftware.Drawing;

// Create a QR code object
QrCode qr = QrWriter.Write("hello world");

// Save QR code as a bitmap
AnyBitmap qrImage = qr.Save();

// Save QR code bitmap as file
qrImage.SaveAs("qr.png");
Imports IronQr
Imports IronSoftware.Drawing

' Create a QR code object
Private qr As QrCode = QrWriter.Write("hello world")

' Save QR code as a bitmap
Private qrImage As AnyBitmap = qr.Save()

' Save QR code bitmap as file
qrImage.SaveAs("qr.png")
$vbLabelText   $csharpLabel

System.Drawing.Images

Görüntüleri Microsoft'un System.Drawing.Images nesnesine dönüştürmek, Bitmap sınıfını kullanarak QR kodunu bir dosya yoluna kaydetmenizi sağlar. Bu örnekte, Save yöntemi, QR kodunu qrBitmap.png yoluna bir PNG dosyası olarak kaydeder.

System.Drawing.Common yalnızca Windows platformunda desteklenir.

:path=/static-assets/qr/content-code-examples/tutorials/csharp-qr-writing-5.cs
using IronQr;
using System.Drawing;

// Create a QR code object
QrCode qr = QrWriter.Write("hello world");

// Save QR code as a bitmap
Bitmap qrImage = qr.Save();

// Save QR code bitmap as file
qrImage.Save("qrBitmap.png");
Imports IronQr
Imports System.Drawing

' Create a QR code object
Private qr As QrCode = QrWriter.Write("hello world")

' Save QR code as a bitmap
Private qrImage As Bitmap = qr.Save()

' Save QR code bitmap as file
qrImage.Save("qrBitmap.png")
$vbLabelText   $csharpLabel

IronSoftware.Drawing

System.Drawing.Common'nin platformlar arası uyumluluk eksikliği nedeniyle, geliştiriciler platformlar arası uygulamaları sürdürürken sorunlarla karşılaşabilir. IronQR, hem System.Drawing.Common hem de IronSoftware.Drawing kullanabilir.

IronQR, IronSoftware.Drawing'den AnyBitmap sınıfını kullanır; bu, aşağıdakilere örtük olarak dönüştürülen, evrensel olarak uyumlu bir Bitmap sınıfıdır:

  • System.Drawing.Bitmap
  • System.Drawing.Image
  • SkiaSharp.SKBitmap
  • SixLabors.ImageSharp
  • Microsoft.Maui.Graphics.Platform.PlatformImage

Bu güçlü açık kaynak kütüphanesi ile IronQR, .NET 8, .NET 7, .NET 6, .NET 5, .NET Core, .NET Standard ve .NET Framework 4.6.2+ ile uyumluluk ve platformlar arası destek sağlar. Kütüphane hakkında daha fazla bilgi almak için lütfen IronSoftware.Drawing sitesine başvurun.

PDF Üzerine Damga

IronQR, geliştiricilerin QR kodlarını mevcut PDF belgelerine damgalamalarına olanak tanır, böylece başkalarının bağlantılara veya ek kaynaklara hızlıca erişmesini sağlar. Tek ve birden fazla sayfaya QR kodu damgalamak desteklenir.

Tek Sayfaya Damga

QR kodunu oluşturduktan sonra, QrCode nesnesinden StampToExistingPdfPage yöntemini çağırın. Bu metod, dosya yolu, koordinatlar (x ve y), sayfa numarası ve PDF parola korumalıysa varsa isteğe bağlı bir parola gerektirir. Argümanlar sağlandıktan sonra metod QR kodunu damgalar ve PDF'yi kaydeder.

Lütfen dikkate alınBu metod PDF sayfalarına dayanır ve sayfa numaralandırması 0 yerine 1 ile başlar.

:path=/static-assets/qr/content-code-examples/tutorials/csharp-qr-writing-6.cs
using IronQr;

// Create a QR code object
QrCode qr = QrWriter.Write("hello world");

string filepath = "example.pdf";
int x = 100;
int y = 150;
int page = 1;

// Stamp QR code to (100, 150) of the pdf on page 1
qr.StampToExistingPdfPage(filepath, x, y, page);
Imports IronQr

' Create a QR code object
Private qr As QrCode = QrWriter.Write("hello world")

Private filepath As String = "example.pdf"
Private x As Integer = 100
Private y As Integer = 150
Private page As Integer = 1

' Stamp QR code to (100, 150) of the pdf on page 1
qr.StampToExistingPdfPage(filepath, x, y, page)
$vbLabelText   $csharpLabel

Çoklu Sayfalara Damga

Yukarıdaki örneğe benzer şekilde, temel fark StampToExistingPdfPages yönteminin tek bir sayfa numarası yerine bir sayfa numarası listesi almasıdır.

:path=/static-assets/qr/content-code-examples/tutorials/csharp-qr-writing-7.cs
using IronQr;
using System.Collections.Generic;

// Create a QR code object
QrCode qr = QrWriter.Write("hello world");

string filepath = "example.pdf";
int x = 100;
int y = 150;
List<int> pages = new List<int>();
pages.Add(1);
pages.Add(2);
pages.Add(3);
pages.Add(4);

// Stamp QR code to (100, 150) of the pdf on pages 1-4
qr.StampToExistingPdfPages(filepath, x, y, pages);
Imports IronQr
Imports System.Collections.Generic

' Create a QR code object
Private qr As QrCode = QrWriter.Write("hello world")

Private filepath As String = "example.pdf"
Private x As Integer = 100
Private y As Integer = 150
Private pages As New List(Of Integer)()
pages.Add(1)
pages.Add(2)
pages.Add(3)
pages.Add(4)

' Stamp QR code to (100, 150) of the pdf on pages 1-4
qr.StampToExistingPdfPages(filepath, x, y, pages)
$vbLabelText   $csharpLabel

Her İki Örneğin Çıkışı

alt metni


QR Kodu Seçenekleri

IronQR, QR kodu davranışını ve işlevselliğini ince ayarlar yapmak için geniş çapta özelleştirme seçenekleri sunar. QrOptions sınıfı, sürüm kontrolü, kodlama türü, karakter kodlaması ve hata düzeltme düzeyleri gibi çeşitli parametreler sağlar. Bu seçenekleri daha detaylı inceleyelim.

Kodlama

IronQR, hem oluşturma hem de okuma için birden fazla QR kod türünü destekler. Aşağıda desteklenen türler bulunmaktadır:

  • QRCode: Bu, günümüzde yaygın olarak kullanılan standart QR kodudur. 7.089 adet sayısal karakter veya 4.296 adet alfanümerik karakter saklayabilir.
  • MicroQRCode: Standart QR kodunun daha küçük bir versiyonu olan bu kod, en fazla 35 sayısal karakter veya 21 alfasayısal karakter depolayabilir.
  • RMQRCode: Dikdörtgen Mikro QR Kodu, QR kodunun kompakt bir versiyonudur ve en boy oranında esneklik sunar.
:path=/static-assets/qr/content-code-examples/tutorials/csharp-qr-writing-8.cs
using IronQr;
using IronSoftware.Drawing;

QrOptions options = new QrOptions
{
    // Change encoding to micro QR code
    Encoding = IronQr.Enum.QrEncoding.MicroQRCode,
};

// Create QR code
QrCode qr = QrWriter.Write("1234", options);

// Save QR code as a bitmap
AnyBitmap qrImage = qr.Save();

// Save QR code bitmap as file
qrImage.SaveAs("qrImage.png");
Imports IronQr
Imports IronSoftware.Drawing

Private options As New QrOptions With {.Encoding = IronQr.Enum.QrEncoding.MicroQRCode}

' Create QR code
Private qr As QrCode = QrWriter.Write("1234", options)

' Save QR code as a bitmap
Private qrImage As AnyBitmap = qr.Save()

' Save QR code bitmap as file
qrImage.SaveAs("qrImage.png")
$vbLabelText   $csharpLabel

Hata Düzeltme

IronQR, üretilen tüm QR kodlarının hata toleranslı ve güvenilir olmasını sağlamak için standart QR hata düzeltmesini kullanır, zor koşullarda bile. Ayrıca, daha ince ayarlamalar için IronQR, hata düzeltme seviyesini üzerinizde tam kontrol sunar.

QrErrorCorrectionLevel tarafından sağlanan dört düzeyde hata düzeltme seçeneği mevcuttur:

  • Highest: %30 hata düzeltme
  • High: %25 hata düzeltme
  • Medium: %15 hata düzeltme
  • Low: %7 hata düzeltme
:path=/static-assets/qr/content-code-examples/tutorials/csharp-qr-writing-9.cs
using IronQr;
using IronSoftware.Drawing;

QrOptions options = new QrOptions
{
    // Change error correction level to medium
    ErrorCorrectionLevel = QrErrorCorrectionLevel.Medium,
};

// Create QR code
QrCode qr = QrWriter.Write("1234", options);

// Save QR code as a bitmap
AnyBitmap qrImage = qr.Save();

// Save QR code bitmap as file
qrImage.SaveAs("qrImage.png");
Imports IronQr
Imports IronSoftware.Drawing

Private options As New QrOptions With {.ErrorCorrectionLevel = QrErrorCorrectionLevel.Medium}

' Create QR code
Private qr As QrCode = QrWriter.Write("1234", options)

' Save QR code as a bitmap
Private qrImage As AnyBitmap = qr.Save()

' Save QR code bitmap as file
qrImage.SaveAs("qrImage.png")
$vbLabelText   $csharpLabel

Daha yüksek hata düzeltme, QR kodunu okuma sırasında daha fazla hata toleransı sağlar ve daha düşük çözünürlüklerde bile optik olarak algılanabilmesine olanak tanır. Kullanım senaryolarınıza göre test edebilirsiniz.

alt metni

QR Kodu Sürümü

Daha fazla veri depolamak için QR kodu sürümünü ayarlayabilirsiniz. Daha yüksek sürümler envanter veya lojistik için idealdir, düşük sürümler ise kısa URL gibi daha küçük veriler için iyi çalışır. QrOptions nesnesindeki Version özelliğini değiştirin ve Write yöntemine aktarın, böylece gerektiği gibi QR kodu oluşturun.

:path=/static-assets/qr/content-code-examples/tutorials/csharp-qr-writing-10.cs
using IronQr;
using IronSoftware.Drawing;

QrOptions options = new QrOptions
{
    // Change QR code version to 40
    Version = 40,
};

// Create QR code
QrCode qr = QrWriter.Write("1234", options);

// Save QR code as a bitmap
AnyBitmap qrImage = qr.Save();

// Save QR code bitmap as file
qrImage.SaveAs("qrImage.png");
Imports IronQr
Imports IronSoftware.Drawing

Private options As New QrOptions With {.Version = 40}

' Create QR code
Private qr As QrCode = QrWriter.Write("1234", options)

' Save QR code as a bitmap
Private qrImage As AnyBitmap = qr.Save()

' Save QR code bitmap as file
qrImage.SaveAs("qrImage.png")
$vbLabelText   $csharpLabel

alt metni

Çıktıdan görebileceğiniz gibi, QR kodunun 40. sürümü, 5. sürüme göre daha karmaşık ve yoğundur.

Düşük sürümler, daha yüksek çözünürlüklü tarayıcılar olmadan taranması zor olabilen daha kesin bir tarama gerektirir. Ancak, yüksek sürümler daha düşük çözünürlüklü kameralarla bile taramak daha kolaydır. Kapasiteye dayalı olarak QR sürümünü seçmek için daha ayrıntılı bir rehber için lütfen QR sürüm listesine başvurun.

Karakter Kodlaması

Bu seçenek, QR kodunun nasıl kodlandığını belirler. Örneğimizde, varsayılan karakter kodlaması 'ISO-8859-1' iken, bunu 'UTF-32' olarak değiştirdik.

:path=/static-assets/qr/content-code-examples/tutorials/csharp-qr-writing-11.cs
using IronQr;
using IronSoftware.Drawing;

QrOptions options = new QrOptions
{
    // Change character encoding to UTF-32
    CharacterEncoding = "UTF-32"
};

// Create QR code
QrCode qr = QrWriter.Write("1234", options);

// Save QR code as a bitmap
AnyBitmap qrImage = qr.Save();

// Save QR code bitmap as file
qrImage.SaveAs("qrImage.png");
Imports IronQr
Imports IronSoftware.Drawing

Private options As New QrOptions With {.CharacterEncoding = "UTF-32"}

' Create QR code
Private qr As QrCode = QrWriter.Write("1234", options)

' Save QR code as a bitmap
Private qrImage As AnyBitmap = qr.Save()

' Save QR code bitmap as file
qrImage.SaveAs("qrImage.png")
$vbLabelText   $csharpLabel

QR Kodu Stil Verme

Kullanım kolaylığı ve girdi verileri ile ilgili esnekliği yanında, IronQR QR kodlarını benzersiz hale getirmek için birçok özelleştirme ve stil verme seçeneği sunar. QrStyleOptions sınıfı, bir QR kodunun tüm yönlerini özelleştirmek için çeşitli parametreler sağlar. Mevcut seçeneklere bir göz atalım.

Boyutlandırma

QR kodunun boyutunu değiştirmek için, QrStyleOptions nesnesinin Dimensions özelliğini ayarlayabilir ve ardından bunu Save yöntemine aktarabilirsiniz. Varsayılan olarak, QR kodu 300px olarak kaydedilir. Bu örnekte, QR kodunu 300px yerine 600px olarak kaydettik.

:path=/static-assets/qr/content-code-examples/tutorials/csharp-qr-writing-12.cs
using IronQr;
using IronSoftware.Drawing;

QrStyleOptions styleOptions = new QrStyleOptions()
{
    // Change the dimensions to 600px
    Dimensions = 600,
};

string url = "https://ironsoftware.com/csharp/qr/";

// Create QR code
QrCode qr = QrWriter.Write(url);

// Save QR code as a bitmap
AnyBitmap qrImage = qr.Save(styleOptions);

// Save QR code bitmap as file
qrImage.SaveAs("qrURLResized.png");
Imports IronQr
Imports IronSoftware.Drawing

Private styleOptions As New QrStyleOptions() With {.Dimensions = 600}

Private url As String = "https://ironsoftware.com/csharp/qr/"

' Create QR code
Private qr As QrCode = QrWriter.Write(url)

' Save QR code as a bitmap
Private qrImage As AnyBitmap = qr.Save(styleOptions)

' Save QR code bitmap as file
qrImage.SaveAs("qrURLResized.png")
$vbLabelText   $csharpLabel

alt metni

Kenar Boşlukları ve Sınırlar

Kenar boşluklarını ve kenar çerçevelerini ayarlamak için QrStyleOptions sınıfının Margins özelliğini kullanabiliriz. Bu özellik, QR kodunun tüm taraflarındaki kenar boşluklarını kontrol eder, varsayılan değeri 10px'dir. Örneğimizde kenar boşluğunu 20px olarak ayarladık.

:path=/static-assets/qr/content-code-examples/tutorials/csharp-qr-writing-13.cs
using IronQr;
using IronSoftware.Drawing;

QrStyleOptions styleOptions = new QrStyleOptions()
{
    // Change margins to 20px
    Margins = 20
};

string url = "https://ironsoftware.com/csharp/qr/";

// Create QR code
QrCode qr = QrWriter.Write(url);

// Save QR code as a bitmap
AnyBitmap qrImage = qr.Save(styleOptions);

// Save QR code bitmap as file
qrImage.SaveAs("qrURLMarginMultiple.png");
Imports IronQr
Imports IronSoftware.Drawing

Private styleOptions As New QrStyleOptions() With {.Margins = 20}

Private url As String = "https://ironsoftware.com/csharp/qr/"

' Create QR code
Private qr As QrCode = QrWriter.Write(url)

' Save QR code as a bitmap
Private qrImage As AnyBitmap = qr.Save(styleOptions)

' Save QR code bitmap as file
qrImage.SaveAs("qrURLMarginMultiple.png")
$vbLabelText   $csharpLabel

alt metni

Her Taraf İçin Kenar Boşluklarını Değiştir

IronQR, kullanıcıların her bir taraf için farklı kenar boşlukları belirtmesine olanak tanıyarak daha hassas kontrol sunar.

:path=/static-assets/qr/content-code-examples/tutorials/csharp-qr-writing-14.cs
using IronQr;
using IronSoftware.Drawing;

QrStyleOptions styleOptions = new QrStyleOptions()
{
    // Change margins
    MarginBottom = 30,
    MarginTop = 100,
    MarginRight = 40,
    MarginLeft = 20,
};

string url = "https://ironsoftware.com/csharp/qr/";

// Create QR code
QrCode qr = QrWriter.Write(url);

// Save QR code as a bitmap
AnyBitmap qrImage = qr.Save(styleOptions);

// Save QR code bitmap as file
qrImage.SaveAs("qrURLMarginMultiple.png");
Imports IronQr
Imports IronSoftware.Drawing

Private styleOptions As New QrStyleOptions() With {
	.MarginBottom = 30,
	.MarginTop = 100,
	.MarginRight = 40,
	.MarginLeft = 20
}

Private url As String = "https://ironsoftware.com/csharp/qr/"

' Create QR code
Private qr As QrCode = QrWriter.Write(url)

' Save QR code as a bitmap
Private qrImage As AnyBitmap = qr.Save(styleOptions)

' Save QR code bitmap as file
qrImage.SaveAs("qrURLMarginMultiple.png")
$vbLabelText   $csharpLabel

Yeniden Renklendirme

QrStyleOptions sınıfını kullanarak QR koduna ve arka planına renk ekleyebiliriz. Renkleri özelleştirmek, QR kodunu daha benzersiz ve dikkat çekici hale getirir. Color ve BackgroundColor özelliklerini kullanarak rengi değiştirebilirsiniz. Atanabilecek renklerin listesi için IronSoftware.Drawing öğesini içe aktardığınızdan emin olun.

:path=/static-assets/qr/content-code-examples/tutorials/csharp-qr-writing-15.cs
using IronQr;
using IronSoftware.Drawing;

// Load new logo image
AnyBitmap logo = AnyBitmap.FromFile("sample.png");

// Add new logo to QR code style options
QrStyleOptions styleOptions = new QrStyleOptions()
{
    Logo = new QrLogo(logo, 50, 50, 10),
};

string url = "https://ironsoftware.com/csharp/qr/";

// Create QR code
QrCode qr = QrWriter.Write(url);

// Save QR code as a bitmap
AnyBitmap qrImage = qr.Save(styleOptions);

// Save QR code bitmap as file
qrImage.SaveAs("qrURLColored.png");
Imports IronQr
Imports IronSoftware.Drawing

' Load new logo image
Dim logo As AnyBitmap = AnyBitmap.FromFile("sample.png")

' Add new logo to QR code style options
Dim styleOptions As New QrStyleOptions() With {
    .Logo = New QrLogo(logo, 50, 50, 10)
}

Dim url As String = "https://ironsoftware.com/csharp/qr/"

' Create QR code
Dim qr As QrCode = QrWriter.Write(url)

' Save QR code as a bitmap
Dim qrImage As AnyBitmap = qr.Save(styleOptions)

' Save QR code bitmap as file
qrImage.SaveAs("qrURLColored.png")
$vbLabelText   $csharpLabel

alt metni

Logo Ekle

Renkler ve boyutlar dışında, şirket logonuzu da QR koduna uygulayabilirsiniz. Bu, kullanıcıların QR kodunu markanızla hemen tanımasına ve ilişkilendirmesine yardımcı olur. Logo özelliği, şirket logonuzu ekleyerek bir QR kodunu kolayca özelleştirmenizi sağlar.

:path=/static-assets/qr/content-code-examples/tutorials/csharp-qr-writing-15.cs
using IronQr;
using IronSoftware.Drawing;

// Load new logo image
AnyBitmap logo = AnyBitmap.FromFile("sample.png");

// Add new logo to QR code style options
QrStyleOptions styleOptions = new QrStyleOptions()
{
    Logo = new QrLogo(logo, 50, 50, 10),
};

string url = "https://ironsoftware.com/csharp/qr/";

// Create QR code
QrCode qr = QrWriter.Write(url);

// Save QR code as a bitmap
AnyBitmap qrImage = qr.Save(styleOptions);

// Save QR code bitmap as file
qrImage.SaveAs("qrURLColored.png");
Imports IronQr
Imports IronSoftware.Drawing

' Load new logo image
Dim logo As AnyBitmap = AnyBitmap.FromFile("sample.png")

' Add new logo to QR code style options
Dim styleOptions As New QrStyleOptions() With {
    .Logo = New QrLogo(logo, 50, 50, 10)
}

Dim url As String = "https://ironsoftware.com/csharp/qr/"

' Create QR code
Dim qr As QrCode = QrWriter.Write(url)

' Save QR code as a bitmap
Dim qrImage As AnyBitmap = qr.Save(styleOptions)

' Save QR code bitmap as file
qrImage.SaveAs("qrURLColored.png")
$vbLabelText   $csharpLabel

alt metni

Logoyu Özelleştir

QrLogo sınıfı, logonun görünümünün daha fazla özelleştirilmesine olanak tanır. Aşağıda mevcut özellikler bulunmaktadır:

  • Bitmap: Logo olarak kullanmak istediğiniz görüntüyü temsil eder.
  • Width: Logonun genişliğini temsil eder. Varsayılan değeri 0'dır.
  • Height: Logonun yüksekliğini temsil eder. Varsayılan değeri 0'dır.
  • CornerRadius: Logonun köşelerini yuvarlamak için kullanılan yarıçapı temsil eder. Varsayılan olarak 0'dır, bu da logonun kare köşelere sahip olacağı anlamına gelir.
using IronQRCode;
using IronSoftware.Drawing;

sınıf Program
{
    static void Main()
    {
        `QrStyleOptions` styleOptions = new `QrStyleOptions`
        {
            `Logo` = new `QrLogo`
            {
                `Bitmap` = `AnyBitmap.FromBitmap`("path/to/logo.png"),
                `Width` = 50,
                `Height` = 50,
                `CornerRadius` = 5
            }
        };

        `QrCode` qr = `QrWriter.CreateQrCode`()
                               .Write("Customized Logo Example");

        qr.SaveAs("example-customized-logo-qr.png", styleOptions);
    }
}
using IronQRCode;
using IronSoftware.Drawing;

sınıf Program
{
    static void Main()
    {
        `QrStyleOptions` styleOptions = new `QrStyleOptions`
        {
            `Logo` = new `QrLogo`
            {
                `Bitmap` = `AnyBitmap.FromBitmap`("path/to/logo.png"),
                `Width` = 50,
                `Height` = 50,
                `CornerRadius` = 5
            }
        };

        `QrCode` qr = `QrWriter.CreateQrCode`()
                               .Write("Customized Logo Example");

        qr.SaveAs("example-customized-logo-qr.png", styleOptions);
    }
}
Imports IronQRCode
Imports IronSoftware.Drawing

Class Program
    Shared Sub Main()
        Dim styleOptions As New QrStyleOptions With {
            .Logo = New QrLogo With {
                .Bitmap = AnyBitmap.FromBitmap("path/to/logo.png"),
                .Width = 50,
                .Height = 50,
                .CornerRadius = 5
            }
        }

        Dim qr As QrCode = QrWriter.CreateQrCode().Write("Customized Logo Example")

        qr.SaveAs("example-customized-logo-qr.png", styleOptions)
    End Sub
End Class
$vbLabelText   $csharpLabel

Hata Toleransını Kontrol Etme

Dosya formatlarında ve özelleştirmelerde kapsamlı esnekliğin yanı sıra, esneklik hata ayıklama ve hata yönetimi alanlarına da uzanır. IronQR, geliştiricilerin istisnalarla başa çıkmalarını ve uygulamaları doğrulamak için birim testleri yazmalarını sağlayan çeşitli araçlar sağlar.

Checksum'lar

QR kodları bazen zarar görebilir, ancak IronQR, onları işlevsel tutmak için yerleşik sağlama toplamları ve veri düzeltme içerir. QR kodlarının hata toleranslı kalmasını sağlamak için Reed-Solomon hata düzeltme algoritmasını kullanır.

Ayrıntılı Hata Mesajları

IronQR, kullanıcıların sorunları hızla belirlemelerine yardımcı olan ayrıntılı hata mesajları sağlar. Bu mesajlar, hata ayıklama ve sorun çözme işlemini daha doğrudan yapan spesifik istisnalar listesi içerir. Aşağıda, kütüphane tarafından kullanılan IronQrException listesi bulunmaktadır.

  • IronQrEncodingException: IronQrException'nin bir alt sınıfı olan bu hata, QR kodunun yazılmasıyla ilgili bir sorun olduğunda ortaya çıkar. Örneğin, kullanıcı boş bir dizeden QR kodu oluşturmaya çalışırsa görüntülenir.

alt metni

  • IronQrFileException: IronQrException'nin bir alt sınıfı olan bu hata, dosya ile ilgili bir sorun ortaya çıktığında meydana gelir.

  • IronQrPdfPasswordExcception: IronQrException'nin bir alt sınıfı olan bu hata, kullanıcının damgalamaya çalıştığı PDF şifre korumalı olduğunda ve şifre girilmediğinde veya yanlış şifre girildiğinde ortaya çıkar. PDF'nin açılamadığı örnekte gösterildiği gibi diğer PDF ile ilgili hataları da kapsar.

alt metni

Sonuç

IronQR, .NET uygulamaları içerisinde QR kodları oluşturmak ve özelleştirmek için kapsamlı bir yöntem seti sağlar. Sağlam özellikleriyle, geliştiriciler kolayca çeşitli veri kodlamalarına, görsel stillere ve hata düzeltme seviyelerine sahip QR kodları oluşturabilirler. Kütüphanenin çeşitli çıktı formatları ve mevcut dokümanlarla sorunsuz entegrasyon desteği, her türlü QR kod projesi için çok yönlü bir araç haline getirir. İster temel QR kodlarına ister gelişmiş, markalı çözümlere ihtiyacınız olsun, IronQR ihtiyaçlarınızı verimli bir şekilde karşılamak için esneklik ve işlevsellik sunar.

Daha fazla bilgi edinmek için IronQR dokümantasyonunu inceleyin, bir ücretsiz deneme ile keşfe başlayın ve lisanslama seçeneklerini gözden geçirerek ihtiyaçlarınıza en uygun planı belirleyin.

Sıkça Sorulan Sorular

C#'ta QR kodu nasıl oluşturabilirim?

C# dilinde, IronQR'de bulunan QrWriter sınıfını kullanarak bir QR kodu oluşturabilirsiniz. Bu sınıf, verilerinizi bir QR koduna yazmanıza ve çeşitli görüntü formatlarında kaydetmenize olanak tanır. Verilerinizi kodlamak için Write yöntemini ve QR kodunu çıktı olarak almak için SaveAs yöntemini kullanın.

QR kodlarına hangi tür özelleştirmeler uygulabilirim?

IronQR, QR kodlarının renklerini değiştirerek, logolar ekleyerek, yeniden boyutlandırarak ve kenar boşluklarını ayarlayarak özelleştirmenize olanak tanır. Bu özelleştirmeleri uygulamak için QrStyleOptions sınıfını kullanın.

C# dilinde bir QR kodunu PDF'ye gömebilir miyim?

Evet, IronQR kullanarak StampToExistingPdfPage veya StampToExistingPdfPages yöntemlerini kullanarak bir QR kodunu PDF'ye gömebilirsiniz. Bu, QR kodunun hangi konumda ve sayfalarda görüneceğini belirtmenize olanak tanır.

QR kodları oluştururken hataları nasıl yönetebilirim?

IronQR, hata ayıklama ve sorun çözme sürecine yardımcı olmak için IronQrEncodingException, IronQrFileException ve IronQrPdfPasswordException gibi hata mesajları sağlayarak sağlam bir hata yönetimi özelliği sunar.

QR kodlarını hangi formatlara verebilirim?

IronQR kullanarak, QR kodlarını JPG, PNG, GIF ve TIFF dahil olmak üzere çeşitli formatlara verebilirsiniz. SaveAs yöntemi, QR kodu çıktınız için istediğiniz formatı belirtmenize olanak tanır.

Bu kütüphane çapraz platform geliştirmeyi destekliyor mu?

Evet, IronQR, IronSoftware.Drawing kütüphanesi aracılığıyla çapraz platform geliştirmeyi destekler ve farklı .NET sürümleri ve platformlarıyla uyumlu hale getirir.

Markalama amacıyla bir QR koduna logo eklemek mümkün mü?

IronQR kullanarak QrStyleOptions sınıfındaki Logo özelliğini ayarlayarak bir QR koduna logo ekleyebilirsiniz, bu da özel logo görünümüyle markalı QR kodlar oluşturmanıza olanak tanır.

QR kodlarında hata düzeltmenin amacı nedir?

IronQR tarafından desteklenen QR kodlarında hata düzeltme, QR kodları kısmen zarar görse bile okunabilir kalmasını sağlar. Bu özellik, farklı kullanım durumlarına uygun dört düzeyde düzeltme sunar: En Yüksek, Yüksek, Orta ve Düşük.

Hangi veri türleri QR kodlarına kodlanabilir?

IronQR, QR kodlarına metin, URL, sayılar, ikili veri ve akışlar dahil olmak üzere çeşitli veri türlerini kodlayabilir, bu da temsil edebileceğiniz verilerde esneklik sağlar.

C# dilinde bir URL ile QR kodu nasıl oluşturabilirim?

C# dilinde bir URL ile QR kodu oluşturmak için IronQR'deki QrWriter sınıfını kullanın. URL'yi kodlamak için Write yöntemini ve QR kodunu bir görüntü olarak kaydetmek için SaveAs yöntemini kullanın.

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
Başlamaya Hazır mısınız?
Nuget İndirmeler 67,270 | Sürüm: 2026.5 just released
Still Scrolling Icon

Hâlâ Kaydırıyor Musunuz?

Hızlıca kanıt ister misiniz? PM > Install-Package IronQR
bir örnek çalıştırın url'nizin bir QR koda dönüşmesini izleyin.