C# Bilgisayar Kamerasından Fotoğraf Çekmek

İlk önce Microsoft Visual Studio da yeni bir Windows Form Application projesi açıyoruz ve ismini Kamera olarak değiştirin. Ve aşağıdaki form düzenine benzer bir form oluşturun. Çünkü anlattıklarımı bu düzene uygun yapacağım.
C# Kameradan Görüntü Almak

Form tasarımında en üstte bir adet Picture Box, altta Foto Çek butonu, sağda bir adet Combobox ve onun sağında da bir tane Picture Box daha var. Bu tasarımı Android teki kamera uygulamalarına benzetebiliriz. Combobox hangi kamerayı kullanacağımızı seçecek. Büyük Picture Box kamerada ki görüntüyü gösterecek, küçük Picture Box ise Foto Çek butonuyla çektiğimiz görüntüyü gösterecek ve o görüntüyü programımızın olduğu yere kaydedecek.
Bunları gerçekleştirmemiz için Aforge kütüphanesini kullanacağız. O kütüphanenin indirme linkini bu KELİMEDEN açabilirsiniz. Oradaki Download Full ZIP Archive butonuyla rar dosyasını indirin. Ve bir klasöre çıkartın. Daha sonra Solution Explorer panelinde Kamera yazısına sağ tıklayıp Add sekmesinden Reference butonunu seçin. 

C# Kameradan Görüntü Almak AForge

Açılan pencerede Browse butonunu tıklayın ve Rar ı çıkardığınız klasörün içinde Release klasörünün içindeki AForge.Video.DirectShow.dll ve AForge.Video.dll dosyalarını seçin.
C# Kameradan Görüntü Almak AForge

Bunları yaptıktan sonra Formumuzda bir kaç ayarlama daha yapacağız. Formumuzun boş bir kısmına tıkladıktan sonra Properties panelinde Window Style kısmındaki ControlBox u False çevirin.
C# Kameradan Görüntü Almak 2

Daha sonra programımızın daha kullanılabilir olması için iki Picture Box elementimize de uygulamamız gereken bir ayarlama daha var.
Picture Box larımızdan herhangi birine tıklayarak yine Properties panelinden Behaviour sekmesindeki SizeMode u Zoom a çeviriyoruz.
C# Kameradan Görüntü Almak 3

Bunları yaptıktan sonra kodlama kısmına geçebiliriz.
Kodlar
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using AForge.Video.DirectShow;
using AForge.Video;
namespace Kamera
{
    public partial class Form1 : Form
    {
        private FilterInfoCollection goruntuAygitlari;
        private VideoCaptureDevice kameramiz;
        public Form1()
        {
            InitializeComponent();
        }
        private void kameramiz_NewFrame(object sender, NewFrameEventArgs e)
        {
            Bitmap bit = (Bitmap)e.Frame.Clone();
            pictureBox1.Image = bit;
        }
        private void button1_Click(object sender, EventArgs e)
        {
            pictureBox2.Image = pictureBox1.Image;
            pictureBox1.Image.Save("goruntu.jpg");
        }
        private void Form1_Load_1(object sender, EventArgs e)
        {
            goruntuAygitlari = new FilterInfoCollection(FilterCategory.VideoInputDevice);
            foreach (FilterInfo aygit in goruntuAygitlari)
            {
                comboBox1.Items.Add(aygit);
            }
            comboBox1.SelectedIndex = 0;
            kameramiz = new VideoCaptureDevice(goruntuAygitlari[comboBox1.SelectedIndex].MonikerString);
            kameramiz.NewFrame += new NewFrameEventHandler(kameramiz_NewFrame);
            kameramiz.Start();
         
        }
        private void button2_Click(object sender, EventArgs e)
        {
            if (kameramiz.IsRunning)
            {
                kameramiz.Stop();
            }
            Application.Exit();
        }
    }
}

Bu kodlarla birlikte C# Kamera uygulamamız fonksiyonel olarak düzgün çalışıyor. Ancak ilk başta eklediğimiz Combobox gerekli fakat programımız için gerekli bizim görmemize gerek yok. Bu yüzden Comboboxumuz seçili iken Behaviour sekmesinden Visible yi False seçiyoruz.
C# Kameradan Görüntü Almak 4

Programdan Görüntü
C# Kameradan Görüntü Almak 5

Yorum Gönder

0 Yorumlar