Tugas 3 PBKK Camera Capture
Nama : Danar Sodik Priyambodo
NRP : 5025211145
PBKK-A
Tugas 3 kali ini membuat aplikasi Camera Capture untuk mendapatkan gambar dari webcam yang tersedia dan juga mengambil gambar tersebut untuk di simpan, atau mirip sekali dengan aplikasi Foto Camera. Implementasi sederhana dari aplikasi Windows Forms yang memanfaatkan Library AForge.NET Framework untuk berinteraksi dengan webcam. Aplikasi ini menawarkan beberapa fungsi utama. Pertama, saat aplikasi dimuat, daftar perangkat camera (webcam) yang tersedia ditampilkan dalam elemen "WebcamList". Pengguna dapat memilih perangkat yang ingin digunakan. Selanjutnya, saat tombol "Start" ditekan, aplikasi akan memulai tangkapan video dari webcam yang dipilih dan menampilkan setiap frame video baru dalam "pictureBox1". Saat pengguna ingin mengambil gambar dari video, mereka dapat menekan tombol "Capture", yang akan menampilkan gambar tersebut dalam "pictureBox2". Selanjutnya, pengguna dapat menyimpan gambar ini dalam format JPEG atau PNG dengan menekan tombol "Save Image". Terakhir, tombol "Exit" digunakan untuk menghentikan tangkapan video (jika sedang berjalan) dan keluar dari aplikasi. Keseluruhan, aplikasi ini memberikan cara sederhana untuk mengakses dan memanipulasi video dari webcam dengan menggunakan AForge.NET Framework dalam lingkungan Windows Forms.
Berikut Merupakan Source Code dari Aplikasi Camera Capture :
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
using AForge; | |
using AForge.Video; | |
using AForge.Video.DirectShow; | |
using System.Drawing; | |
using System.Drawing.Imaging; | |
namespace CameraCapture | |
{ | |
public partial class Form1 : Form | |
{ | |
private FilterInfoCollection captureDevice; | |
private VideoCaptureDevice videoSource; | |
public Form1() | |
{ | |
InitializeComponent(); | |
} | |
private void Form1_Load(object sender, EventArgs e) | |
{ | |
captureDevice = new FilterInfoCollection(FilterCategory.VideoInputDevice); | |
foreach (FilterInfo deviceList in captureDevice) | |
{ | |
WebcamList.Items.Add(deviceList.Name); | |
} | |
WebcamList.SelectedIndex = 0; | |
videoSource = new VideoCaptureDevice(); | |
} | |
private void Start_Click(object sender, EventArgs e) | |
{ | |
if (videoSource.IsRunning) | |
{ | |
videoSource.SignalToStop(); | |
videoSource.WaitForStop(); | |
pictureBox1.Image = null; | |
pictureBox1.Invalidate(); | |
} | |
videoSource = new VideoCaptureDevice(captureDevice[WebcamList.SelectedIndex].MonikerString); | |
videoSource.NewFrame += new NewFrameEventHandler(VideoSource_NewFrame); | |
videoSource.Start(); | |
} | |
private void VideoSource_NewFrame(object sender, NewFrameEventArgs eventArgs) | |
{ | |
pictureBox1.Image = (Bitmap)eventArgs.Frame.Clone(); | |
} | |
private void Capture_Click(object sender, EventArgs e) | |
{ | |
pictureBox2.Image = (Bitmap)pictureBox1.Image.Clone(); | |
} | |
private void SaveImage_Click(object sender, EventArgs e) | |
{ | |
SaveFileDialog saveFileDialog = new SaveFileDialog(); | |
saveFileDialog.Title = "Save Image As"; | |
saveFileDialog.Filter = "Image files (*.jpg, *.png) | *.jpg, *.png"; | |
ImageFormat imageFormat = ImageFormat.Png; | |
if (saveFileDialog.ShowDialog() == DialogResult.OK) | |
{ | |
string ext = System.IO.Path.GetExtension(saveFileDialog.FileName); | |
switch (ext) | |
{ | |
case ".jpg": | |
imageFormat = ImageFormat.Jpeg; | |
break; | |
case ".png": | |
imageFormat = ImageFormat.Png; | |
break; | |
} | |
pictureBox2.Image.Save(saveFileDialog.FileName, imageFormat); | |
} | |
} | |
private void Exit_Click(object sender, EventArgs e) | |
{ | |
if (videoSource.IsRunning) | |
{ | |
videoSource.SignalToStop(); | |
videoSource.WaitForStop(); | |
pictureBox1.Image = null; | |
pictureBox1.Invalidate(); | |
pictureBox2.Image = null; | |
pictureBox2.Invalidate(); | |
} | |
Application.Exit(null); | |
} | |
} | |
} |
Berikut Merupakan ScreenShoot dari Aplikasi Camera Capture :
- aplikasi dijalankan dan menampilkan webcam yang tersedia
- memilih webcam dan menekan tombol start
- tekan tombol capture untuk mengambil gambar
- setelah mendapatkan gambar yang bagus, dapat di lakukan save dengan menekan tombol Save Image
Project dari aplikasi ini dapat di akses di github : CameraCapture
Terima Kasih
Komentar
Posting Komentar