[PBKK-3] Media Capture
Pada pertemuan ketiga mata kuliah PBKK kami mendapat tugas untuk membuat aplikasi desktop sederhana menggunakan .NET Framework. .NET Framework adalah platform perangkat lunak yang dikembangkan oleh Microsoft. Frmaework ini digunakan untuk membangun dan menjalankan berbagai jenis aplikasi perangkat lunak di lingkungan sistem operasi Windows. aplikasi yang harus kami buat kali ini adalah membuat aplikasi media capture. Aplikasi ini akan mampu mengaktifkan kamera yang tersedia pada perangkat, menagkap gambar, dan menyimpannya.
Repository: GitHub
Berikut adalah kode yang digunakan dalam bahasa C# beserta dokumentasinya
- 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;
- using AForge.Video;
- using AForge.Video.DirectShow;
- using System.Drawing;
- using System.Drawing.Imaging;
- namespace WebcamCapture
- {
- public partial class WebcamCapture : Form
- {
- private FilterInfoCollection captureDevice;
- private VideoCaptureDevice videoSource;
- public WebcamCapture()
- {
- InitializeComponent();
- }
- private void Form1_Load(object sender, EventArgs e)
- {
- captureDevice = new FilterInfoCollection(FilterCategory.VideoInputDevice);
- foreach (FilterInfo deviceList in captureDevice)
- {
- comboBoxWebcamList.Items.Add(deviceList.Name);
- }
- comboBoxWebcamList.SelectedIndex = 0;
- videoSource = new VideoCaptureDevice();
- }
- private void buttonStart_Click(object sender, EventArgs e)
- {
- if (videoSource.IsRunning)
- {
- videoSource.SignalToStop();
- videoSource.WaitForStop();
- pictureBox1.Image = null;
- pictureBox1.Invalidate();
- }
- videoSource = new VideoCaptureDevice(captureDevice[comboBoxWebcamList.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 buttonCapture_Click(object sender, EventArgs e)
- {
- pictureBox2.Image = (Bitmap)pictureBox1.Image.Clone();
- }
- private void buttonSaveImage_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 buttonExit_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);
- }
- }
- }
Referensi:




Komentar
Posting Komentar