Örnekler İle C# Geliştirme - Bölüm 13

Grimner

Adanmış Üye
28 Mar 2020
6,308
4,733
a3b2jeo.png


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ış

cs-13-1.png


İlk önce projemizi oluşturmakla başlayalım.
Ben programın ismini "QR Kod Okuyucu" şeklinde koyuyorum, siz de kendinize göre isimlendirebilirsiniz.

cs-13-2-2.png


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.

cs-13-2-1.png


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;

cs-13-4.png


Ş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ç

cs-13-5.png


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!
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.