using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using AForge.Video;
using AForge.Video.DirectShow;
namespace WebCamUygulamasi
{
public partial class FormWebCam : Form
{
public FormWebCam()
{
InitializeComponent();
}
private FilterInfoCollection webcamsayisi;
private VideoCaptureDevice kamera;
private void FormWebCam_Load(object sender, EventArgs e)
{
webcamsayisi = new FilterInfoCollection(FilterCategory.VideoInputDevice);
foreach (FilterInfo videocapturedevice in webcamsayisi)
{
comboBoxKameralar.Items.Add(videocapturedevice.Name);
}
comboBoxKameralar.SelectedIndex = 0;
}
private void kullanilacakcihaz_NewFrame(object sender, NewFrameEventArgs eventArgs)
{
Bitmap bit = (Bitmap)eventArgs.Frame.Clone();
pictureBoxKamera.Image = bit;
}
private void btnkamerabaslat_Click(object sender, EventArgs e)
{
kamera = new VideoCaptureDevice(webcamsayisi[comboBoxKameralar.SelectedIndex].MonikerString);
kamera.NewFrame += new NewFrameEventHandler(kullanilacakcihaz_NewFrame);
kamera.Start();
}
private void btnkameradurdur_Click(object sender, EventArgs e)
{
if (kamera.IsRunning) //kamera açıksa kapatıyoruz.
{
kamera.Stop();
}
}
private void btnkamerakaydet_Click(object sender, EventArgs e)
{
SaveFileDialog saveFileDialog1 = new SaveFileDialog();
saveFileDialog1.Filter = "Jpeg Resmi|*.jpg|Bitmap Resmi|*.bmp|Gif Resmi|*.gif";
saveFileDialog1.Title = "Resmi Kaydet";
saveFileDialog1.ShowDialog();
if (saveFileDialog1.FileName != "")
{
FileStream DosyaAkisi = (FileStream)saveFileDialog1.OpenFile();
switch (saveFileDialog1.FilterIndex)
{
case 1:
pictureBoxKamera.Image.Save(DosyaAkisi, System.Drawing.Imaging.ImageFormat.Jpeg);
break;
case 2:
pictureBoxKamera.Image.Save(DosyaAkisi, System.Drawing.Imaging.ImageFormat.Bmp);
break;
case 3:
pictureBoxKamera.Image.Save(DosyaAkisi, System.Drawing.Imaging.ImageFormat.Gif);
break;
}
DosyaAkisi.Close();
}
}
private void FormWebCam_FormClosing(object sender, FormClosingEventArgs e)
{
if (kamera.IsRunning)
{
kamera.Stop();
}
}
}
}