c# Desktop

Web Kamerasıyla QrCode Okuyan c# Form Uygulaması

Neredeyse tüm bilgisayarlarda web kamerası bulunmaktadır. Bu kamera aracılığıyla qr code okuma işlemi yapan bir uygulama yapacağız. Öncelikle projeye AFroge, Zen ve zxing kütüphanelerini dahil edelim. Daha sonra aşağıdaki kodları yazalım.

using AForge.Video.DirectShow;
using System;
using System.Drawing;
using System.Windows.Forms;
using ZXing;
 
namespace qrcodeWebCamOku
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
 
        //FilterInfoCollection ve VideoCaptureDevice sınıfından nesnelerimi türettim. FilterInfoCollection cihazımdaki tüm kameraları, yakalama cihazlarını vs bulur. VideoCaptureDevice ise benim kullanacağım kamera için değişkenim olacak.
        FilterInfoCollection Cihazlar;
        VideoCaptureDevice kameram;
 
 
        //Formun load olayında bilgisayarıma bağlı olan dahili ve harici kameraları tarıyorum ve comboboxa ekliyorum.
        private void Form1_Load(object sender, EventArgs e)
        {
            Cihazlar = new FilterInfoCollection(FilterCategory.VideoInputDevice);
 
            //FilterInfo cihazdaki görüntü yakalama cihazları hakkında bilgi tutar.
            foreach (FilterInfo cihaz in Cihazlar)
            {
                comboBox1.Items.Add(cihaz.Name);
            }
            //İlk bulduğu kamera ismi görünsün diye ilk atamayı yaptık, 0 verdik.
            comboBox1.SelectedIndex = 0;
            string aa = "https://www.maarificedid.com/admin/default.aspx";
            
            Zen.Barcode.CodeQrBarcodeDraw qrcode = Zen.Barcode.BarcodeDrawFactory.CodeQr;
            pictureBox1.Image = qrcode.Draw(aa, 50);
        }
 
 
        //Kamerayı başlatmak için yazılan kodlar. NewFrame Her bir görüntü için yeni bir frame başlatır. 
        private void btnQRKodOku_Click(object sender, EventArgs e)
        {
            kameram = new VideoCaptureDevice(Cihazlar[comboBox1.SelectedIndex].MonikerString);
 
            kameram.NewFrame += CaptureDevice_NewFrame;
            kameram.Start();
            timer1.Start();
 
        }
 
        //Kullanılan cihazın metodunu oluşturuyorum
        private void CaptureDevice_NewFrame(object sender, AForge.Video.NewFrameEventArgs eventArgs)
        {
            pictureBox1.Image = (Bitmap)eventArgs.Frame.Clone();
        }
 
        //Form kapanırken kameramı kapatıyorum.
        private void Form1_FormClosing(object sender, FormClosingEventArgs e)
        {
            if (kameram.IsRunning)
            {
                kameram.Stop();
            }
 
        }
 
        private void timer1_Tick(object sender, EventArgs e)
        {
            if (pictureBox1.Image != null)
            {
                //BarcodeReader sınıfı ile QR Barkodumu çözüyorum.
                BarcodeReader qrBarkodOkuyucu = new BarcodeReader();
                Result sonuc = qrBarkodOkuyucu.Decode((Bitmap)pictureBox1.Image);
 
                //Eğer okuma işlemi başarılı ise timer ve kameramı durduruyorum.
                if (sonuc != null)
                {
                    richTextBox1.Text = sonuc.ToString();
                    timer1.Stop();
                    if (kameram.IsRunning)
                    {
                        kameram.Stop();
                    }
                }
            }
        }
    }
}
 

Etiketler
zen zxing aforge webcam barcode qrcode 
İlgili Makaleler
c# Console Uygulamalarında ReadKey Metoduyla Klavye Tuşlarını Kontrol Etme
Yıkıcı Metotlar (Destructors)
Sayısal Loto Çekilişini Yapan c# Uygulaması
Kredi Kartı Taksitlendirme İşlemini Yapan c# Uygulaması
Kaçan Buton Oyununu Yapan c# Uygulaması
Yazdırma İletişim Kutusu (PrintDialog)
C# Uygulamalarında HashMap Dizi Oluşturma
C# Uygulamalarında Dictionary Dizi Oluşturma
c# Form Uygulamalarında Ekranın Genişliğini ve Yüksekliğini Bulma
Rastgele Seçilen Bir Sayıyı Basamaklarına Ayıran, Basamak Değerini ve Sayı Değerini Bulan c# Console Uygulaması
Veri Girişi Doğrulama (Input Validation)
Veri Girişi Maskeleme (MaskedTextBox)
LINQ - Gruplama (Grouping) Örnekleri
Konsol Ekranında Kod Yazma ve Çalıştırma
Panel Üzerinde Serbest Çizim Yapan c# Form Uygulaması
c# Console Uygulamalarında Ping Nasıl Kullanılır, Ping Atma
C# Programlama Dilinde Veri Tipleri
Form Sayfalarında Ayrıntılı ListBox Kullanımı
2020 TYT Matematik Ortakatlı Kuralıyla İlgili Sorunun Çözümünü c# Diliyle Kodlama
Form Üzerine Satranç Tahtası Yapan c# Uygulaması

Yorum Ekle
   
Kötü İyi