Bu yazımızda Aforge kütüphanelerini kullanarak C# Windows Formda WebCam kullanarak görüntü alma yani fotoğraf çekme ve kaydetme işlemlerini gerçekleştiren bir örnek gerçekleştireceğiz.
Form tasarımını incelediğimizde bilgisayara bağlı olan kameraları listeleyeceğimiz 1 adet Combobox, Görüntüleme işlemleri için 2 adet PictureBox, Kayıt işleminde kullanacağımız 1 adet SaveFileDialog ve Button’ larımızı görüyoruz. “Kamera Aç” kamerayı açarak pictureBox kontrolünde görüntünün oluşmasını, “Fotoğraf Çek” butonu o andaki görüntünün yakalanarak PictureBox2‘ye aktarılmasını, “Kamerayı Kapat” butonu ise kameranın açık ise kapatılamasını sağlıyor. Kameranın kapatılması işlemini eğer unutulursa Form kapatılırken de gerçekleştireceğiz. Bu işlemi Form_Closing eventında gerçekleştireceğiz.
Şimdi Adım adım kodlarımıza geçelim.
İndirme işlemi tamamlandıktan sonra dosyaları zip içerinden çıkarıyoruz.
Şimdi projemizde sağ tıklayarak Add Reference diyoruz.
Burada karşımıza gelen pencerede;
Browse diyerek zip içerisinde çıkardığımız Release klasörü altında Aforge.Video.DirectShow.dll ve Aforge.Video.dll dosyalarını referans olarak ekliyoruz. Şimdi kodlarımıza geçebiliriz. Kodların tamamını aşağıya kopyalıyorum. Gerekli açıklamaları bu b
ölümden de görebilirsiniz.
Form tasarımını incelediğimizde bilgisayara bağlı olan kameraları listeleyeceğimiz 1 adet Combobox, Görüntüleme işlemleri için 2 adet PictureBox, Kayıt işleminde kullanacağımız 1 adet SaveFileDialog ve Button’ larımızı görüyoruz. “Kamera Aç” kamerayı açarak pictureBox kontrolünde görüntünün oluşmasını, “Fotoğraf Çek” butonu o andaki görüntünün yakalanarak PictureBox2‘ye aktarılmasını, “Kamerayı Kapat” butonu ise kameranın açık ise kapatılamasını sağlıyor. Kameranın kapatılması işlemini eğer unutulursa Form kapatılırken de gerçekleştireceğiz. Bu işlemi Form_Closing eventında gerçekleştireceğiz.
Şimdi Adım adım kodlarımıza geçelim.
İndirme işlemi tamamlandıktan sonra dosyaları zip içerinden çıkarıyoruz.
Şimdi projemizde sağ tıklayarak Add Reference diyoruz.
Burada karşımıza gelen pencerede;
Browse diyerek zip içerisinde çıkardığımız Release klasörü altında Aforge.Video.DirectShow.dll ve Aforge.Video.dll dosyalarını referans olarak ekliyoruz. Şimdi kodlarımıza geçebiliriz. Kodların tamamını aşağıya kopyalıyorum. Gerekli açıklamaları bu b
Kod:
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; //Referansları ekliyoruz
using AForge.Video.DirectShow; //Referansları ekliyoruz
namespace webcam_foto
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private FilterInfoCollection webcam;//webcam isminde tanımladığımız değişken bilgisayara kaç kamera bağlıysa onları tutan bir dizi.
private VideoCaptureDevice cam;//cam ise bizim kullanacağımız aygıt.
private void Form1_Load(object sender, EventArgs e)
{
webcam = new FilterInfoCollection(FilterCategory.VideoInputDevice);//webcam dizisine mevcut kameraları dolduruyoruz.
foreach (FilterInfo videocapturedevice in webcam)
{
comboBox1.Items.Add(videocapturedevice.Name);//kameraları combobox a dolduruyoruz.
}
comboBox1.SelectedIndex = 0; //Comboboxtaki ilk index numaralı kameranın ekranda görünmesi için
}
private void button1_Click(object sender, EventArgs e)
{
cam = new VideoCaptureDevice(webcam[comboBox1.SelectedIndex].MonikerString);
cam.NewFrame += new NewFrameEventHandler(cam_NewFrame);
cam.Start();
}
private void cam_NewFrame(object sender, NewFrameEventArgs eventArgs)
{
Bitmap bit = (Bitmap)eventArgs.Frame.Clone();
pictureBox1.Image = bit;
}
private void button2_Click(object sender, EventArgs e)
{
if (cam.IsRunning) //kamera açıksa kapatıyoruz.
{
cam.Stop();
}
}
private void button3_Click(object sender, EventArgs e)
{
pictureBox2.Image = pictureBox1.Image;
} //realitycheats.com
private void button4_Click(object sender, EventArgs e)
{
if (saveFileDialog1.ShowDialog() == DialogResult.OK)
{
pictureBox1.Image.Save(saveFileDialog1.FileName);//Picturebox'taki görüntüyü kaydediyoruz.
}
}
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{ //For kapatılırken kamera açıksa kapatıyoruz.
if (cam.IsRunning)
{
cam.Stop();
}
}
}
}