C# QR Kod Oluşturucu Application
C# kullanarak QR kodları oluşturma rehberimize hoş geldiniz! QR kodları ve .NET barkod DLL, bilgiyi hızlı ve verimli bir şekilde paylaşmanın popüler yolları haline geldi. Bir uygulama geliştiriyor, bir web sitesi yönetiyor veya sadece bağlantıları paylaşmak için düzenli bir yol arıyor olun, bu kodlar inanılmaz derecede faydalı olabilir. Bu kılavuzda, IronQR kullanarak QR kodlarını nasıl verimli bir şekilde üreteceğimizi göstereceğiz, böylece ihtiyaçınıza uygun QR kodları oluşturabilirsiniz. Bu kütüphane, C# ile çalışan herkes için karmaşık mantıklarla uğraşmadan QR kodları oluşturmayı kolaylaştırır. Adımları sizinle birlikte geçeceğiz, başlamanız için ihtiyaçınız olan her şeyi sağlayacağımızdan emin olacağız. Uygulamanıza QR kodu üretici işlevselliği eklemeyi düşünüyorsanız veya sadece nasıl yapıldığını merak ediyorsanız, doğru yerdesiniz. Hadi başlayalım.
C#'ta QR Kod Üretici Nasıl Oluşturulur
- Visual Studio'da Bir Windows Forms Uygulaması Oluşturun
- NuGet kullanarak QR Kütüphanesini Kurun
- Ön uç öğelerini tasarlayın
- QR üretiminin mantığını yazın
- Uygulamayı başlatın ve QR kodları oluşturmaya başlayın
Install QR Kod Oluşturucu Library in C
!{--0100110001001001010000100101001001000001010100100101100101011111--}
Başlamadan önce, IronQR NuGet Paketini kurmamız gerekiyor.
Install-Package IronQR
IronQR: C# QR Kütüphanesi
IronQR, .NET uygulamalarına QR kodu işlevselliği entegre etmek için bir C# QR Kodu kütüphanesidir. IronQR, Windows, Linux, macOS, iOS ve Android gibi çeşitli geliştirme ortamlarıyla uyumu garanti eden çok sayıda .NET sürümü ve proje türünü destekler, bunlar C#, VB.NET, F#, .NET Core, .NET Standard, .NET Framework ve daha fazlasını içerir.
IronQR, QR kodlarını okuma ve oluşturma yeteneği, birden fazla görüntü formatını destekleme ve yeniden boyutlandırma, stil verme ve QR kodlarına logo ekleme gibi özelleştirme seçenekleriyle öne çıkar.
IronQR'un Bazı Anahtar Özellikleri
IronQR, temel QR kodu oluşturmanın ötesinde işlevselliğini genişleterek QR koduyla ilgili bir dizi görev için tasarlanmış çeşitli özellikler sunar. Bu özellikleri inceleyelim ve örnek kodları kontrol edelim, bunları konsol uygulaması gibi herhangi bir tür .NET uygulama şablonuna ekleyebilirsiniz.
QR Kodlarını Okuyun
IronQR, QR kodlarını çözümlerken mükemmel performans gösterir ve kullanıcılara QR kodlarında yer alan bilgilere erişmenin basit bir yolunu sunar. Basit URL'lerden karmaşık gömülü bilgilere kadar QR kodlarından verileri hızla ve doğru şekilde çıkarabilirsiniz.
:path=/static-assets/qr/content-code-examples/tutorials/csharp-qr-code-generator-application-1.cs
using IronQr;
using IronSoftware.Drawing;
using System;
using System.Collections.Generic;
IronQr.License.LicenseKey = "License-Key";
// Load the image file that contains the QR Code
var inputImage = AnyBitmap.FromFile("QRCode.png");
// Prepare the image for QR code detection
QrImageInput qrInput = new QrImageInput(inputImage);
// Initialize the QR Code reader
QrReader qrReader = new QrReader();
// Execute QR Code reading on the provided image
IEnumerable<QrResult> qrResults = qrReader.Read(qrInput);
// Assuming you have the QR results in qrResults as before
foreach (var result in qrResults)
{
Console.WriteLine(result.Value); // Print the QR code content to the console
}
Imports IronQr
Imports IronSoftware.Drawing
Imports System
Imports System.Collections.Generic
IronQr.License.LicenseKey = "License-Key"
' Load the image file that contains the QR Code
Dim inputImage = AnyBitmap.FromFile("QRCode.png")
' Prepare the image for QR code detection
Dim qrInput As New QrImageInput(inputImage)
' Initialize the QR Code reader
Dim qrReader As New QrReader()
' Execute QR Code reading on the provided image
Dim qrResults As IEnumerable(Of QrResult) = qrReader.Read(qrInput)
' Assuming you have the QR results in qrResults as before
For Each result In qrResults
Console.WriteLine(result.Value) ' Print the QR code content to the console
Next result
İşlem, gerekli ad alanlarını içerecek şekilde başlar: IronQr ve IronSoftware.Drawing, resim manipülasyonlarını gerçekleştirmek için IronSoftware.Drawing ad alanından Color özel olarak belirtilerek.
QR kod okuma sürecine başlamadan önce, yazılımı lisans anahtarınızla IronQr.License.LicenseKey'i atayarak etkinleştirmek önemlidir. Daha sonra kod, bir dosyadan AnyBitmap.FromFile("QRCode.png") kullanarak QR kod görüntüsünü yüklemeye devam eder.
Görüntü yüklendikten sonra, QR kodu algılama için hazırlamak gereklidir. Bu hazırlık, görüntü için bir kap olarak hizmet eden QrImageInput nesnesi oluşturarak yapılır.
Bu özelliğin merkezi, QR kod okuma işlemini gerçekleştirmek için oluşturulan ve kullanılan QrReader sınıfında bulunur. Hazirlanan imaji analiz eden okuyucu, icindeki QR kodlarini arar. Bu işlemin sonucu, görüntü içinde tespit edilen her bir QR kodunu temsil eden QrResult nesnelerinin bir koleksiyonudur.
QR kodlarında kodlanan verilere erişmek ve bunları kullanmak için, kod foreach döngüsünü kullanarak sonuç koleksiyonu üzerinde yinelenir. Her bir QrResult nesnesi, erişilebilen ve görüntülenebilen QR kodunun değeri gibi özellikler içerir.
Özel QR Okuma Modu Seçenekleri
IronQR, farkli QR kodlarini okumak icin çeşitli modlar sunar, bu da onu farkli ihtiyaçlara uygun hale getirir.
- Karisik Taramama Modu: Hiz ve dogrulugu dengeler, belirsiz veya kismi olarak gizli olan QR kodlari icin faydalidir.
- Makine Ogretimi (ML) Taramama Modu: Zarar gormus veya okunmasi zor QR kodlarini okumak icin gelişmiş teknolojiyi kullanir, tespiti zor senaryolar icin idealdir.
- Temel Tarama Modu: En basit ve en hizli yol, acik ve dolaysiz QR kodlari icin.
:path=/static-assets/qr/content-code-examples/tutorials/csharp-qr-code-generator-application-2.cs
using IronQr;
using IronQr.Enum;
using IronSoftware.Drawing;
using System.Collections.Generic;
IronQr.License.LicenseKey = "License-Key";
// Load the image file that contains the QR Code
var inputImage = AnyBitmap.FromFile("QRCode.png");
QrImageInput mixedScanInput = new QrImageInput(inputImage, QrScanMode.OnlyDetectionModel);
IEnumerable<QrResult> mixedScanResults = new QrReader().Read(mixedScanInput);
QrImageInput mlScanInput = new QrImageInput(inputImage, QrScanMode.OnlyDetectionModel);
IEnumerable<QrResult> mlScanResults = new QrReader().Read(mlScanInput);
QrImageInput basicScanInput = new QrImageInput(inputImage, QrScanMode.OnlyBasicScan);
IEnumerable<QrResult> basicScanResults = new QrReader().Read(basicScanInput);
Imports IronQr
Imports IronQr.Enum
Imports IronSoftware.Drawing
Imports System.Collections.Generic
IronQr.License.LicenseKey = "License-Key"
' Load the image file that contains the QR Code
Dim inputImage = AnyBitmap.FromFile("QRCode.png")
Dim mixedScanInput As New QrImageInput(inputImage, QrScanMode.OnlyDetectionModel)
Dim mixedScanResults As IEnumerable(Of QrResult) = (New QrReader()).Read(mixedScanInput)
Dim mlScanInput As New QrImageInput(inputImage, QrScanMode.OnlyDetectionModel)
Dim mlScanResults As IEnumerable(Of QrResult) = (New QrReader()).Read(mlScanInput)
Dim basicScanInput As New QrImageInput(inputImage, QrScanMode.OnlyBasicScan)
Dim basicScanResults As IEnumerable(Of QrResult) = (New QrReader()).Read(basicScanInput)
Gelişmiş QR Kodları Okuyun
IronQR'nin gelişmiş QR kodu okuma yetenekleri, QR kodu tarama ve kod cozme icin kapsamli bir yaklasim sunar. Bu özellik seti, temel okumayi asarak daha derin bir duzeyde etkileşim ve veri çıkarma fırsatı sunar.
:path=/static-assets/qr/content-code-examples/tutorials/csharp-qr-code-generator-application-3.cs
using IronQr;
using IronSoftware.Drawing;
using System;
using System.Collections.Generic;
IronQr.License.LicenseKey = "License-Key";
var imageToScan = AnyBitmap.FromFile("QRCode.png");
QrImageInput qrInput = new QrImageInput(imageToScan);
QrReader qrScanner = new QrReader();
IEnumerable<QrResult> scanResults = qrScanner.Read(qrInput);
foreach (QrResult qrResult in scanResults)
{
Console.WriteLine(qrResult.Value);
Console.WriteLine(qrResult.Url);
foreach (IronSoftware.Drawing.PointF coordinate in qrResult.Points)
{
Console.WriteLine($"{coordinate.X}, {coordinate.Y}");
}
}
Imports IronQr
Imports IronSoftware.Drawing
Imports System
Imports System.Collections.Generic
IronQr.License.LicenseKey = "License-Key"
Dim imageToScan = AnyBitmap.FromFile("QRCode.png")
Dim qrInput As New QrImageInput(imageToScan)
Dim qrScanner As New QrReader()
Dim scanResults As IEnumerable(Of QrResult) = qrScanner.Read(qrInput)
For Each qrResult As QrResult In scanResults
Console.WriteLine(qrResult.Value)
Console.WriteLine(qrResult.Url)
For Each coordinate As IronSoftware.Drawing.PointF In qrResult.Points
Console.WriteLine($"{coordinate.X}, {coordinate.Y}")
Next coordinate
Next qrResult
C# uygulamanizda IronQR kutuphanesi kullanilarak bir QR Kod uretici oluşturmak icin bu adimlari dikkatle izleyin. Bu kılavuz, bir Windows form uygulaması oluşturmayı, IronQR kütüphanesini yüklemeyi, bir QR kodu oluşturacak kodu yazmayı ve çıktıyı anlamayı adım adım anlatacaktır.
Adım 1: Visual Studio'da Windows Uygulaması Oluşturun
- Bilgisayarinizda Visual Studio'yu başlatarak başlayin.
- 'Yeni Proje Oluştur' dugmesine tiklayin.
-
Proje turu olarak Windows Forms Uygulamasi'ni secin. Dil olarak C# seçtiğinizden emin olun.

-
Projenize bir isim girin ve kaydetmek icin bir konum secin. Ardından bir sonraki ekran, .NET framework'ü seçin. Ardından Oluştur düğmesine tıklayın.

Adım 2: IronQR Kütüphanesini Yükleme
Şimdi projeye IronQR kütüphanesini yüklemenin zamanı geldi. IronQR kütüphanesini farklı yöntemlerle yükleyebilirsiniz.
NuGet Paket Yöneticisini Kullanarak Yükleme
- Cozum Gezgini'nde projenize sag tiklayin ve NuGet Paketlerini Yonet secin.
- Arama kutusuna
IronQRyazın ve Enter'a basın.
-
Listede IronQR'yi bulun ve yanindaki Yukle dugmesine tiklayin.

NuGet Paket Yöneticisi Konsolunu Kullanarak Yükleme
Install-Package IronQR yazın ve Enter'a basın.
Adım 3: Ön Yüz Tasarlama
3.1 Başlık Başlığı
QR Kodu Oluşturucu uygulaması başlatıldığında, kullanıcılar "QR Generator IronQR" başlıklı etkileyici bir başlık ile anında karşılaşırlar, kalın ve otoriter bir yazı tipinde ayarlanmıştır.
3.2 Giriş Bölümü
QR Kodu için Metin Girişi
Kullanicilar QR kodlarina kodlamak istedikleri verileri girebilir.
Logo Seçimi
'Logo Secin' alani, ek bir kişiselleştirme katmani saglar. Kullanicilar QR koduna gomulecek bir logo yukleyebilir.
Renk Yapılandırması
Renk secim dugmeleri, kullanicilarin QR kodu paletini ozellestirmesine olanak tanir.
3.3 Stil Parametreleri
Boyut Ayarları
Kullanicilarin QR kodunun genel boyutunu belirtmesine olanak tanir.
Kenar Boşlukları Ayarları
Kullanicilarin QR kodunun etrafındaki boslugu belirtmesine olanak tanir.
3.4 Çıktı Önizlemesi
Oluşturulan QR kodunun gerçek zamanli on izlemesini sunar.
3.5 Hareket Düğmeleri
QR Oluştur
QR kodu oluşturma surecini tetikler.
QR Kodunu Kaydet
QR kodunu kaydetmek icin bir kaydetme dialogunu acar.
Formu Sıfırla
Tüm onceki girdileri ve secimleri temizler.
Adım 4: Arka Uç Mantığını Yazın
4.1 Kurulum ve Başlatma
Gerekli ad alanlarını içerir: IronQr ve IronSoftware.Drawing.
:path=/static-assets/qr/content-code-examples/tutorials/csharp-qr-code-generator-application-4.cs
using IronQr;
using IronSoftware.Drawing;
using Color = IronSoftware.Drawing.Color;
Imports IronQr
Imports IronSoftware.Drawing
Imports Color = IronSoftware.Drawing.Color
:path=/static-assets/qr/content-code-examples/tutorials/csharp-qr-code-generator-application-5.cs
public QR_Generator()
{
InitializeComponent();
SetLicenseKey();
EnsureDirectoryExists(qrCodesDirectory);
}
'INSTANT VB WARNING: The following constructor is declared outside of its associated class:
'ORIGINAL LINE: public QR_Generator()
Public Sub New()
InitializeComponent()
SetLicenseKey()
EnsureDirectoryExists(qrCodesDirectory)
End Sub
4.2 Lisans Anahtarı Yapılandırması
IronQR kutuphanesi icin gecerli bir lisans anahtari uygular:
private static void SetLicenseKey() {
IronQr.License.LicenseKey = "YOUR_LICENSE_KEY";
}
private static void SetLicenseKey() {
IronQr.License.LicenseKey = "YOUR_LICENSE_KEY";
}
Private Shared Sub SetLicenseKey()
IronQr.License.LicenseKey = "YOUR_LICENSE_KEY"
End Sub
"YOUR_LICENSE_KEY"'yi gerçek lisans anahtarınızla değiştirin.
4.3 Dizin Yönetimi
Gerekli dizinleri kontrol eder veya oluşturur.
:path=/static-assets/qr/content-code-examples/tutorials/csharp-qr-code-generator-application-7.cs
private static void EnsureDirectoryExists(string path)
{
if (!System.IO.Directory.Exists(path))
{
System.IO.Directory.CreateDirectory(path);
}
}
Private Shared Sub EnsureDirectoryExists(ByVal path As String)
If Not System.IO.Directory.Exists(path) Then
System.IO.Directory.CreateDirectory(path)
End If
End Sub
QR kodlari dizininin yolu, QR_Generator sinifi yapılandıricisinda, uygulamanin başlatma yolunu 'QR Kodlari' klasor adiyla birlestiren qrCodesDirectory olarak tanimlanmistir:
:path=/static-assets/qr/content-code-examples/tutorials/csharp-qr-code-generator-application-8.cs
string qrCodesDirectory = System.IO.Path.Combine(Application.StartupPath, "QR Codes");
Dim qrCodesDirectory As String = System.IO.Path.Combine(Application.StartupPath, "QR Codes")
4.4 Renk Seçimi
Renk dialogu bilesenleri ve yardimci fonksiyonlar saglar.
:path=/static-assets/qr/content-code-examples/tutorials/csharp-qr-code-generator-application-9.cs
private string ColorToHex(System.Drawing.Color color)
{
return $"#{color.R:X2}{color.G:X2}{color.B:X2}";
}
Private Function ColorToHex(ByVal color As System.Drawing.Color) As String
Return $"#{color.R:X2}{color.G:X2}{color.B:X2}"
End Function
UpdateColor yöntemi, seçilen rengi alır ve onu onaltılık dizeyi kullanarak IronSoftware.Drawing.Color biçimine dönüştürür ve seçime bağlı olarak ya QR kodunun ön veya arka plan rengini günceller. Ayrıca, yeni renk seçimini yansıtmak için kullanıcı arayüzünü günceller:
:path=/static-assets/qr/content-code-examples/tutorials/csharp-qr-code-generator-application-10.cs
private void UpdateColor(ref Color targetColor, Control display, bool isBackground)
{
if (select_color.ShowDialog() == DialogResult.OK)
{
var hexColor = ColorToHex(select_color.Color);
targetColor = new Color(hexColor);
display.BackColor = select_color.Color;
}
}
Private Sub UpdateColor(ByRef targetColor As Color, ByVal display As Control, ByVal isBackground As Boolean)
If select_color.ShowDialog() = DialogResult.OK Then
Dim hexColor = ColorToHex(select_color.Color)
targetColor = New Color(hexColor)
display.BackColor = select_color.Color
End If
End Sub
4.5 Logoyu Ekleme
Kullanicinin bir logo secmesine olanak tanir.
:path=/static-assets/qr/content-code-examples/tutorials/csharp-qr-code-generator-application-11.cs
private void btn_logo_Click(object sender, EventArgs e)
{
if (select_logo.ShowDialog() == DialogResult.OK)
{
try
{
logoBmp = new AnyBitmap(select_logo.FileName);
selected_logo.Image = Image.FromFile(select_logo.FileName);
}
catch (Exception ex)
{
ShowError("An error occurred while loading the logo", ex.Message);
}
}
}
Private Sub btn_logo_Click(ByVal sender As Object, ByVal e As EventArgs)
If select_logo.ShowDialog() = DialogResult.OK Then
Try
logoBmp = New AnyBitmap(select_logo.FileName)
selected_logo.Image = Image.FromFile(select_logo.FileName)
Catch ex As Exception
ShowError("An error occurred while loading the logo", ex.Message)
End Try
End If
End Sub
4.6 QR Kodu Oluşturma
Kullanıcı girdilerine dayali QR kodlari oluşturma mantigi icerir.
:path=/static-assets/qr/content-code-examples/tutorials/csharp-qr-code-generator-application-12.cs
private void btn_generate_Click(object sender, EventArgs e)
{
GenerateQRCode();
}
Private Sub btn_generate_Click(ByVal sender As Object, ByVal e As EventArgs)
GenerateQRCode()
End Sub
QrOptions nesnesi, QR kodunun hasara veya gizlenmeye karşı dayanıklılığını artıran hata düzeltme seviyesini tanımlar. CreateStyleOptions yöntemi, renkler, boyutlar ve logo gibi kullanıcının özel ayarlarını içeren bir QrStyleOptions nesnesi üretir. İşte yöntemin detayları:
:path=/static-assets/qr/content-code-examples/tutorials/csharp-qr-code-generator-application-14.cs
private QrStyleOptions CreateStyleOptions()
{
return new QrStyleOptions
{
BackgroundColor = bgColor,
Color = color,
Dimensions = txt_dimension.Value > 0 ? Convert.ToInt32(txt_dimension.Value) : throw new ArgumentException("Please select valid dimensions!"),
Margins = Convert.ToInt32(txt_margin.Value),
Logo = logoBmp != null ? new QrLogo { Bitmap = logoBmp, Width = 50, Height = 50, CornerRadius = 5 } : null
};
}
Private Function CreateStyleOptions() As QrStyleOptions
'INSTANT VB TODO TASK: Throw expressions are not converted by Instant VB:
'ORIGINAL LINE: return new QrStyleOptions { BackgroundColor = bgColor, Color = color, Dimensions = txt_dimension.Value > 0 ? Convert.ToInt32(txt_dimension.Value) : throw new ArgumentException("Please select valid dimensions!"), Margins = Convert.ToInt32(txt_margin.Value), Logo = logoBmp != null ? new QrLogo { Bitmap = logoBmp, Width = 50, Height = 50, CornerRadius = 5 } : null };
Return New QrStyleOptions With {
.BackgroundColor = bgColor,
.Color = color,
.Dimensions = If(txt_dimension.Value > 0, Convert.ToInt32(txt_dimension.Value), throw New ArgumentException("Please select valid dimensions!")),
.Margins = Convert.ToInt32(txt_margin.Value),
.Logo = If(logoBmp IsNot Nothing, New QrLogo With {
.Bitmap = logoBmp,
.Width = 50,
.Height = 50,
.CornerRadius = 5
}, Nothing)
}
End Function
4.7 QR Kodunu Kaydetme
Oluşturulan QR kodunu kaydetme işlemini yonetir.
:path=/static-assets/qr/content-code-examples/tutorials/csharp-qr-code-generator-application-15.cs
private void btn_save_Click(object sender, EventArgs e)
{
SaveQRCode();
}
private void SaveQRCode()
{
if (pictureBox.Image == null)
{
MessageBox.Show("There is no QR code to save.", "Error");
return;
}
saveFileDialog.Filter = "PNG Files|*.png|JPEG Files|*.jpg";
saveFileDialog.Title = "Save QR Code";
saveFileDialog.FileName = "QRCode";
if (saveFileDialog.ShowDialog() == DialogResult.OK)
{
try
{
pictureBox.Image.Save(saveFileDialog.FileName, DetermineImageFormat(saveFileDialog.FileName));
MessageBox.Show("QR Code has been saved!", "Success");
}
catch (Exception ex)
{
ShowError("An error occurred while saving the QR code", ex.Message);
}
}
}
Private Sub btn_save_Click(ByVal sender As Object, ByVal e As EventArgs)
SaveQRCode()
End Sub
Private Sub SaveQRCode()
If pictureBox.Image Is Nothing Then
MessageBox.Show("There is no QR code to save.", "Error")
Return
End If
saveFileDialog.Filter = "PNG Files|*.png|JPEG Files|*.jpg"
saveFileDialog.Title = "Save QR Code"
saveFileDialog.FileName = "QRCode"
If saveFileDialog.ShowDialog() = DialogResult.OK Then
Try
pictureBox.Image.Save(saveFileDialog.FileName, DetermineImageFormat(saveFileDialog.FileName))
MessageBox.Show("QR Code has been saved!", "Success")
Catch ex As Exception
ShowError("An error occurred while saving the QR code", ex.Message)
End Try
End If
End Sub
:path=/static-assets/qr/content-code-examples/tutorials/csharp-qr-code-generator-application-16.cs
private System.Drawing.Imaging.ImageFormat DetermineImageFormat(string filePath)
{
return System.IO.Path.GetExtension(filePath).ToLower() == ".jpg" ? System.Drawing.Imaging.ImageFormat.Jpeg : System.Drawing.Imaging.ImageFormat.Png;
}
Private Function DetermineImageFormat(ByVal filePath As String) As System.Drawing.Imaging.ImageFormat
Return If(System.IO.Path.GetExtension(filePath).ToLower() = ".jpg", System.Drawing.Imaging.ImageFormat.Jpeg, System.Drawing.Imaging.ImageFormat.Png)
End Function
4.8 Uygulamayı Sıfırlama
Kullanıcı girdilerini temizler ve form halini sifirlar.
:path=/static-assets/qr/content-code-examples/tutorials/csharp-qr-code-generator-application-17.cs
private void btn_reset_Click(object sender, EventArgs e)
{
ResetFields();
}
private void ResetFields()
{
txt_QR.Text = string.Empty;
txt_dimension.Value = 200;
txt_margin.Value = 0;
bgColor = Color.White;
color = Color.Black;
txt_selected_color.BackColor = System.Drawing.Color.White;
txt_selected_bgcolor.BackColor = System.Drawing.Color.Black;
logoBmp = null;
selected_logo.Image = null;
pictureBox.Image = null;
}
Private Sub btn_reset_Click(ByVal sender As Object, ByVal e As EventArgs)
ResetFields()
End Sub
Private Sub ResetFields()
txt_QR.Text = String.Empty
txt_dimension.Value = 200
txt_margin.Value = 0
bgColor = Color.White
color = Color.Black
txt_selected_color.BackColor = System.Drawing.Color.White
txt_selected_bgcolor.BackColor = System.Drawing.Color.Black
logoBmp = Nothing
selected_logo.Image = Nothing
pictureBox.Image = Nothing
End Sub
4.9 Hata Yönetimi
Kullanicilara hata mesajlarini gösterir.
:path=/static-assets/qr/content-code-examples/tutorials/csharp-qr-code-generator-application-18.cs
private static void ShowError(string title, string message)
{
MessageBox.Show($"{title}: {message}", "Error");
}
Private Shared Sub ShowError(ByVal title As String, ByVal message As String)
MessageBox.Show($"{title}: {message}", "Error")
End Sub
4.10 Tam Kod Örneği
Tüm yukaridaki özellikleri birleştiren tam kod, projenize baglantili örnek dosyada bulunabilir.
:path=/static-assets/qr/content-code-examples/tutorials/csharp-qr-code-generator-application-19.cs
using IronQr;
using IronSoftware.Drawing;
using Color = IronSoftware.Drawing.Color;
namespace IronQR_QR_Generator_WinForms
{
public partial class QR_Generator : Form
{
string qrCodesDirectory = System.IO.Path.Combine(Application.StartupPath, "QR Codes");
Color bgColor = Color.White;
Color color = Color.Black;
AnyBitmap? logoBmp = null;
public QR_Generator()
{
InitializeComponent();
SetLicenseKey();
EnsureDirectoryExists(qrCodesDirectory);
}
private static void SetLicenseKey()
{
IronQr.License.LicenseKey = "License-Key";
}
private static void EnsureDirectoryExists(string path)
{
if (!System.IO.Directory.Exists(path))
{
System.IO.Directory.CreateDirectory(path);
}
}
private void btn_color_Click(object sender, EventArgs e)
{
UpdateColor(ref color, txt_selected_color, false);
}
private void btn_background_Click(object sender, EventArgs e)
{
UpdateColor(ref bgColor, txt_selected_bgcolor, true);
}
private string ColorToHex(System.Drawing.Color color)
{
return $"#{color.R:X2}{color.G:X2}{color.B:X2}";
}
private void UpdateColor(ref Color targetColor, Control display, bool isBackground)
{
if (select_color.ShowDialog() == DialogResult.OK)
{
var hexColor = ColorToHex(select_color.Color);
targetColor = new Color(hexColor);
display.BackColor = select_color.Color;
}
}
private void btn_logo_Click(object sender, EventArgs e)
{
if (select_logo.ShowDialog() == DialogResult.OK)
{
try
{
logoBmp = new AnyBitmap(select_logo.FileName);
selected_logo.Image = Image.FromFile(select_logo.FileName);
}
catch (Exception ex)
{
ShowError("An error occurred while loading the logo", ex.Message);
}
}
}
private void btn_generate_Click(object sender, EventArgs e)
{
GenerateQRCode();
}
private void GenerateQRCode()
{
try
{
var options = new QrOptions(QrErrorCorrectionLevel.High);
var myQr = QrWriter.Write(txt_QR.Text, options);
var style = CreateStyleOptions();
var qrImage = myQr.Save(style);
var fileName = $"{DateTime.Now:yyyyMMddHHmmssfff}_QR.png";
var fullPath = System.IO.Path.Combine(qrCodesDirectory, fileName);
qrImage.SaveAs(fullPath);
pictureBox.Image = Image.FromFile(fullPath);
}
catch (Exception ex)
{
ShowError("An error occurred during QR code generation or saving", ex.Message);
}
}
private QrStyleOptions CreateStyleOptions()
{
return new QrStyleOptions
{
BackgroundColor = bgColor,
Color = color,
Dimensions = txt_dimension.Value > 0 ? Convert.ToInt32(txt_dimension.Value) : throw new ArgumentException("Please select valid dimensions!"),
Margins = Convert.ToInt32(txt_margin.Value),
Logo = logoBmp != null ? new QrLogo { Bitmap = logoBmp, Width = 50, Height = 50, CornerRadius = 5 } : null
};
}
private void btn_save_Click(object sender, EventArgs e)
{
SaveQRCode();
}
private void SaveQRCode()
{
if (pictureBox.Image == null)
{
MessageBox.Show("There is no QR code to save.", "Error");
return;
}
saveFileDialog.Filter = "PNG Files|*.png|JPEG Files|*.jpg";
saveFileDialog.Title = "Save QR Code";
saveFileDialog.FileName = "QRCode";
if (saveFileDialog.ShowDialog() == DialogResult.OK)
{
try
{
pictureBox.Image.Save(saveFileDialog.FileName, DetermineImageFormat(saveFileDialog.FileName));
MessageBox.Show("QR Code has been saved!", "Success");
}
catch (Exception ex)
{
ShowError("An error occurred while saving the QR code", ex.Message);
}
}
}
private System.Drawing.Imaging.ImageFormat DetermineImageFormat(string filePath)
{
return System.IO.Path.GetExtension(filePath).ToLower() == ".jpg" ? System.Drawing.Imaging.ImageFormat.Jpeg : System.Drawing.Imaging.ImageFormat.Png;
}
private void btn_reset_Click(object sender, EventArgs e)
{
ResetFields();
}
private void ResetFields()
{
txt_QR.Text = string.Empty;
txt_dimension.Value = 200;
txt_margin.Value = 0;
bgColor = Color.White;
color = Color.Black;
txt_selected_color.BackColor = bgColor;
txt_selected_bgcolor.BackColor = color;
logoBmp = null;
selected_logo.Image = null;
pictureBox.Image = null;
}
private static void ShowError(string title, string message)
{
MessageBox.Show($"{title}: {message}", "Error");
}
}
}
Imports IronQr
Imports IronSoftware.Drawing
Imports Color = IronSoftware.Drawing.Color
Namespace IronQR_QR_Generator_WinForms
Partial Public Class QR_Generator
Inherits Form
Private qrCodesDirectory As String = System.IO.Path.Combine(Application.StartupPath, "QR Codes")
Private bgColor As Color = Color.White
Private color As Color = Color.Black
Private logoBmp? As AnyBitmap = Nothing
Public Sub New()
InitializeComponent()
SetLicenseKey()
EnsureDirectoryExists(qrCodesDirectory)
End Sub
Private Shared Sub SetLicenseKey()
IronQr.License.LicenseKey = "License-Key"
End Sub
Private Shared Sub EnsureDirectoryExists(ByVal path As String)
If Not System.IO.Directory.Exists(path) Then
System.IO.Directory.CreateDirectory(path)
End If
End Sub
Private Sub btn_color_Click(ByVal sender As Object, ByVal e As EventArgs)
UpdateColor(color, txt_selected_color, False)
End Sub
Private Sub btn_background_Click(ByVal sender As Object, ByVal e As EventArgs)
UpdateColor(bgColor, txt_selected_bgcolor, True)
End Sub
Private Function ColorToHex(ByVal color As System.Drawing.Color) As String
Return $"#{color.R:X2}{color.G:X2}{color.B:X2}"
End Function
Private Sub UpdateColor(ByRef targetColor As Color, ByVal display As Control, ByVal isBackground As Boolean)
If select_color.ShowDialog() = System.Windows.Forms.DialogResult.OK Then
Dim hexColor = ColorToHex(select_color.Color)
targetColor = New Color(hexColor)
display.BackColor = select_color.Color
End If
End Sub
Private Sub btn_logo_Click(ByVal sender As Object, ByVal e As EventArgs)
If select_logo.ShowDialog() = System.Windows.Forms.DialogResult.OK Then
Try
logoBmp = New AnyBitmap(select_logo.FileName)
selected_logo.Image = Image.FromFile(select_logo.FileName)
Catch ex As Exception
ShowError("An error occurred while loading the logo", ex.Message)
End Try
End If
End Sub
Private Sub btn_generate_Click(ByVal sender As Object, ByVal e As EventArgs)
GenerateQRCode()
End Sub
Private Sub GenerateQRCode()
Try
Dim options = New QrOptions(QrErrorCorrectionLevel.High)
Dim myQr = QrWriter.Write(txt_QR.Text, options)
Dim style = CreateStyleOptions()
Dim qrImage = myQr.Save(style)
Dim fileName = $"{DateTime.Now:yyyyMMddHHmmssfff}_QR.png"
Dim fullPath = System.IO.Path.Combine(qrCodesDirectory, fileName)
qrImage.SaveAs(fullPath)
pictureBox.Image = Image.FromFile(fullPath)
Catch ex As Exception
ShowError("An error occurred during QR code generation or saving", ex.Message)
End Try
End Sub
Private Function CreateStyleOptions() As QrStyleOptions
'INSTANT VB TODO TASK: Throw expressions are not converted by Instant VB:
'ORIGINAL LINE: return new QrStyleOptions { BackgroundColor = bgColor, Color = color, Dimensions = txt_dimension.Value > 0 ? Convert.ToInt32(txt_dimension.Value) : throw new ArgumentException("Please select valid dimensions!"), Margins = Convert.ToInt32(txt_margin.Value), Logo = logoBmp != null ? new QrLogo { Bitmap = logoBmp, Width = 50, Height = 50, CornerRadius = 5 } : null };
Return New QrStyleOptions With {
.BackgroundColor = bgColor,
.Color = color,
.Dimensions = If(txt_dimension.Value > 0, Convert.ToInt32(txt_dimension.Value), throw New ArgumentException("Please select valid dimensions!")),
.Margins = Convert.ToInt32(txt_margin.Value),
.Logo = If(logoBmp IsNot Nothing, New QrLogo With {
.Bitmap = logoBmp,
.Width = 50,
.Height = 50,
.CornerRadius = 5
}, Nothing)
}
End Function
Private Sub btn_save_Click(ByVal sender As Object, ByVal e As EventArgs)
SaveQRCode()
End Sub
Private Sub SaveQRCode()
If pictureBox.Image Is Nothing Then
MessageBox.Show("There is no QR code to save.", "Error")
Return
End If
saveFileDialog.Filter = "PNG Files|*.png|JPEG Files|*.jpg"
saveFileDialog.Title = "Save QR Code"
saveFileDialog.FileName = "QRCode"
If saveFileDialog.ShowDialog() = System.Windows.Forms.DialogResult.OK Then
Try
pictureBox.Image.Save(saveFileDialog.FileName, DetermineImageFormat(saveFileDialog.FileName))
MessageBox.Show("QR Code has been saved!", "Success")
Catch ex As Exception
ShowError("An error occurred while saving the QR code", ex.Message)
End Try
End If
End Sub
Private Function DetermineImageFormat(ByVal filePath As String) As System.Drawing.Imaging.ImageFormat
Return If(System.IO.Path.GetExtension(filePath).ToLower() = ".jpg", System.Drawing.Imaging.ImageFormat.Jpeg, System.Drawing.Imaging.ImageFormat.Png)
End Function
Private Sub btn_reset_Click(ByVal sender As Object, ByVal e As EventArgs)
ResetFields()
End Sub
Private Sub ResetFields()
txt_QR.Text = String.Empty
txt_dimension.Value = 200
txt_margin.Value = 0
bgColor = Color.White
color = Color.Black
txt_selected_color.BackColor = bgColor
txt_selected_bgcolor.BackColor = color
logoBmp = Nothing
selected_logo.Image = Nothing
pictureBox.Image = Nothing
End Sub
Private Shared Sub ShowError(ByVal title As String, ByVal message As String)
MessageBox.Show($"{title}: {message}", "Error")
End Sub
End Class
End Namespace
Adim 5: Uygulamayi Calistirma
Uygulama calistirildiginda, ana pencere girdi, stil, cikti ve eylemler icin bölümlerle duzenlenmis olarak gorunur. QR kodunuzu girerek, ozellestirerek, oluşturarak ve QR kodunu istediginiz gibi kaydederek, kullanıcı arayuzunu takip edin.
Sonuç
Sonuç olarak, bu kılavuz, C# uygulamanızda IronQR kutuphanesini kullanarak QR kodları oluşturma sürecinde size rehberlik etmiştir. Projenizi Visual Studio'da kurmaktan, IronQR kutuphanesini entegre etmeye, kullanıcı dostu bir arayüz tasarlamaya ve arka plan mantığını yazmaya kadar adımları içererek, uygulamalarınıza QR kodu işlevselliği eklemenin ne kadar kolay erişilebilir olduğunu göstermiş olduk.
IronQR'nin yeteneklerini daha ileri kesif yapmak isteyenler icin, başlamak icin IronQR'nin ücretsiz deneme sunduğunu belirtmek gerekir. Projelerinize IronQR'yi entegre etmeye karar verirseniz, lisanslar $799'dan başlar ve profesyonel kalitede QR kod oluşturma için uygun maliyetli bir çözüm sunar.
Sıkça Sorulan Sorular
C#'da bir QR kodu oluşturucu uygulaması nasıl oluşturabilirim?
C#'da bir QR kodu oluşturucu uygulaması oluşturmak için IronQR kütüphanesini kullanabilirsiniz. Visual Studio'da bir Windows Forms Uygulaması kurarak başlayın, IronQR'ı NuGet üzerinden yükleyin ve uygulamanızın ön yüzünü tasarlayın. IronQR'ın özelliklerini, renk seçimi ve logo yerleştirme gibi olanakları kullanarak QR kodu oluşturma mantığını uygulayın.
.NET QR kodu kütüphanesi kullanmanın faydaları nelerdir?
IronQR gibi bir .NET QR kodu kütüphanesi, QR kodlarını okuma konusunda yüksek doğruluk, QR kodu oluşturma için özelleştirme seçenekleri ve çeşitli .NET ortamları için destek gibi gelişmiş özellikler sunar. Ayrıca QR kodlarının boyutlandırılması ve stillendirilmesine olanak tanır.
C#'da QR kodları oluştururken hatalarla nasıl başa çıkabilirim?
C#'da QR kodu oluşturma sırasında try-catch blokları kullanarak uygun hata yönetim mekanizmaları uygulayabilirsiniz. IronQR, hata yönetimini kolaylaştırır ve QR kodu oluşturma sırasında ortaya çıkan sorunların verimli bir şekilde ele alınmasını sağlar.
Bir QR kodu kütüphanesi kullanarak QR kodlarına logolar ekleyebilir miyim?
Evet, IronQR kütüphanesini kullanarak QR kodlarına logolar ekleyebilirsiniz. Bu özellik, QR kodlarınızın markalaşmasını geliştirir ve tasarımınıza özel logolar dahil etmenizi sağlar.
C# uygulamasında oluşturulan QR kodlarını nasıl kaydedebilirim?
C# uygulamasında oluşturulan QR kodlarını, IronQR'ın depolama dizinlerini belirtme özelliğini kullanarak kaydedebilirsiniz. Bu, uygulamanız içinde oluşturulan QR kodlarını verimli bir şekilde yönetmenize ve depolamanıza olanak tanır.
Bir QR kodu kütüphanesi için lisans anahtarını yapılandırmak için hangi adımlar gereklidir?
IronQR için bir lisans anahtarını yapılandırmak için lisanslama kodunu uygulamanıza dahil etmeniz gerekir. Bu genellikle, satın aldığınız lisansı etkinleştirmek için IronQR tarafından sağlanan belirli kod satırlarını eklemeyi içerir.
C# uygulamamda QR kodlarını belirli renklerle nasıl stil verebilirim?
IronQR, QR kodlarını belirli renklerle stilize etmenizi sağlar. Uygulamanıza entegre edilen renk seçim diyalogları ile QR kodunun ön plan ve arka plan renklerini seçebilirsiniz.
Visual Studio'da bir QR kodu kütüphanesi nasıl yüklenir?
IronQR gibi bir QR kodu kütüphanesini Visual Studio'da yüklemek için NuGet Paket Yöneticisini kullanın. 'IronQR' arayın ve projeye eklemek için 'Yükle'ye tıklayın. Alternatif olarak, 'Install-Package IronQR' komutunu kullanarak Paket Yöneticisi Konsolu'nu kullanabilirsiniz.

