How to capture image using webcam in C#
This article will explain the process of capturing image from Webcam through .NET, C# is used as the programming language.
Introduction
Today many of the application automation requires the process of capturing the image. Here I am going to explain the steps that you need to follow to capture an image from Camera.
Design Guidelines
Create a windows application project in C#, Add 2 picture box, 5 buttons and name the button as follows 1) Start 2) Stop 3) Continue ) Click 5) Save and name the PictureBox1 as imgCapture and PictureBox2 as imgSave.
For capturing image from Webcam you need to have an API, I am attaching the API which can be used for capturing image from camera. You can find API named "EasyWebcamApi" in attachment, you need to include Webcam_Capture dll in your application for capturing image.
Code Segment
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.IO;
using WinFormCharpWebCam;
namespace Camera_Sample
{
public partial class Form1 : Form
{
WebCam webcam; //customized class created for handling the task of capturing image from Webcamera
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
webcam = new WebCam();
webcam.InitializeWebCam(ref imgCam);
}
private void btnStart_Click(object sender, EventArgs e)
{
webcam.Start();
}
private void btnStop_Click(object sender, EventArgs e)
{
webcam.Stop();
}
private void imgPreview_Click(object sender, EventArgs e)
{
}
private void btnContinue_Click(object sender, EventArgs e)
{
webcam.Continue();
}
private void btnClick_Click(object sender, EventArgs e)
{
imgPreview.Image = imgCam.Image;
}
private void btnSave_Click(object sender, EventArgs e)
{
SaveFileDialog sdialog = new SaveFileDialog();
sdialog.FileName = "Image";// Default file name
sdialog.DefaultExt = ".Jpg";// Default file extension
sdialog.Filter = "Image (.jpg)|*.jpg"; // Filter files by extension
// Show save file dialog box
// Process save file dialog box results
if (sdialog.ShowDialog() == DialogResult.OK)
{
// Save Image
string filename = sdialog.FileName;
FileStream fstream = new FileStream(filename, FileMode.Create);
imgPreview.Image.Save(fstream, System.Drawing.Imaging.ImageFormat.Jpeg);
fstream.Close();
}
}
}
}
Helper Class
WebCam.cs is the class which can be used for capturing the image
using System;
using System.IO;
using System.Text;
using WebCam_Capture;
using System.Collections.Generic;
namespace CSharpWebCam
{
//Design by Dharma Iyer
class WebCam
{
private WebCamCapture webcam;
private System.Windows.Forms.PictureBox _FrameImage;
private int FrameNumber = 30;
public void InitializeWebCam(ref System.Windows.Forms.PictureBox ImageControl)
{
webcam = new WebCamCapture();
webcam.FrameNumber = ((ulong)(0ul));
webcam.TimeToCapture_milliseconds = FrameNumber;
webcam.ImageCaptured += new WebCamCapture.WebCamEventHandler(webcam_ImageCaptured);
_FrameImage = ImageControl;
}
void webcam_ImageCaptured(object source, WebcamEventArgs e)
{
_FrameImage.Image = e.WebCamImage;
}
public void Start()
{
webcam.TimeToCapture_milliseconds = FrameNumber;
webcam.Start(0);
}
public void Stop()
{
webcam.Stop();
}
public void Continue()
{
// change the capture time frame
webcam.TimeToCapture_milliseconds = FrameNumber;
// resume the video capture from the stop
webcam.Start(this.webcam.FrameNumber);
}
public void ResolutionSetting()
{
webcam.Config();
}
public void AdvanceSetting()
{
webcam.Config2();
}
internal void InitializeWebCam(System.Windows.Forms.PictureBox imgCam)
{
throw new NotImplementedException();
}
}
}
file not found error occur when execute the program
" webcam.InitializeWebCam(ref imgCam); "
at this stage please help me