- 28 Mar 2020
- 6,325
- 4,808
Giriş
Merhaba, C# uygulama geliştirme serimizin on üçüncü yazısına hoş geldiniz.
Önceki yazılarımızdan birinde qr kod oluşturucu yapmıştık.
Bugünde bu oluşturulan qr kodlarını okuyan bir araç yapacağız.
Serinin önceki yazılarını okumak isteyenler için
Örnekler İle C# Geliştirme - Bölüm 1
Örnekler İle C# Geliştirme - Bölüm 2
Örnekler İle C# Geliştirme - Bölüm 3
Örnekler İle C# Geliştirme - Bölüm 4
Örnekler İle C# Geliştirme - Bölüm 5
Örnekler İle C# Geliştirme - Bölüm 6
Örnekler İle C# Geliştirme - Bölüm 7
Örnekler İle C# Geliştirme - Bölüm 8
Örnekler İle C# Geliştirme - Bölüm 9
Örnekler İle C# Geliştirme - Bölüm 10
Örnekler İle C# Geliştirme - Bölüm 11
Örnekler İle C# Geliştirme - Bölüm 12
İyi okumalar dilerim!
Yapılış
İlk önce projemizi oluşturmakla başlayalım.
Ben programın ismini "QR Kod Okuyucu" şeklinde koyuyorum, siz de kendinize göre isimlendirebilirsiniz.
Proje oluştuktan sonra formun ismini Özellikler > Text bölümünden 'QR Kod Okuyucu' değiştiriyorum.
Sonrasında Araç Kutusundan aşağıdaki araçları ekliyorum.
2 adet GroupBox
1 PictureBox
1 Button
1 TextBox
Evet, tasarımımız bitti.
Şimdi gerekli kütüphanelerimizi ekleyelim.
Bu kütüphaneyi eklemek için "NuGet Paket Yöneticisine" giriyoruz.
Kütüphanemizin ismi "GroupDocs.Parser"
Normalde ZXing kullanmayı düşünüyordum ancak o kullanım esnasında bir çok hata ve sorun çıkartıyor, o yüzden GroupDocs.Parser kullanmayı uygun gördüm.
Yükleme işleminde sonra ise kütüphanemizi koda entegre etme kısmına geçiyoruz.
C#:
using GroupDocs;
using GroupDocs.Parser.Data;
using GroupDocs.Parser;
Şimdi de diğer kodlarımıza bakalım.
İşlem için button1 üstüne çift tıklıyoruz ve açılan kısma aşağıdaki kodları yazıyoruz.
C#:
private void button1_Click(object sender, EventArgs e)
{
OpenFileDialog openFileDialog = new OpenFileDialog();
// Bir adet OpenFileDialog nesnesi oluşturuyoruz. Bu nesne, kullanıcının dosya seçmesine yarıyor.
openFileDialog.Filter = "Image Files (*.png;*.jpg;*.jpeg;*.gif;*.bmp)|*.png;*.jpg;*.jpeg;*.gif;*.bmp|All files (*.*)|*.*";
// Burada ise kullanıcının seçebileceği dosya türlerini ayarlıyoruz. Burada belirttiğimiz türler dışındakiler gözükmeyecektir.
openFileDialog.Title = "Select QR Code Image";
// Burada da açılacak pencerenin ismini ayarlıyoruz.
if (openFileDialog.ShowDialog() == DialogResult.OK) // Açılan pencerede "Ok" yazan kısma bastıysa true dönecek ve if çalışacak.
{
// Seçilen dosya yolu
string filePath = openFileDialog.FileName;
// QR kodunu oku
pictureBox1.Image = System.Drawing.Image.FromFile(filePath);
// C# kullanarak QR Kodunu tarayın
using (Parser parser = new Parser(filePath))
{
// Tüm QR Kodlarını çıkarın.
IEnumerable<PageBarcodeArea> barcodes = parser.GetBarcodes();
// Yinele
foreach (PageBarcodeArea barcode in barcodes)
{
// Tanımlanan QR Kodu değerlerini yazdırın
textBox1.Text = (barcode.Value);
}
}
// İf içindeki kodlar için kullandığım kaynak: https://blog.groupdocs.com/tr/parser/scan-qr-code-using-csharp/
}
}
Sonuç
Kapanış
Gördüğünüz gibi QR kod okuma işlememiz başarıyla tamamlandı.
Bu kütüphaneyle ilgili tek sorun bir tık yavaş olması olabilir, onun dışında bir sorunla karşılaşmadım henüz.
Ancak pek kullandığım bir kütüphane değil yani gelecekte sorun yaşatır mı bilmiyorum.
Olası bir durumda yukarıda belirttiğim gibi alternatif olan kütüphanelere geçebilirsiniz.
Yazımız bu kadardı, okuduğunuz için teşekkürler.
İYİ FORUMLAR!