Langsung ke konten utama

PBKK D, Tugas Membuat Program Kamera Sederhana Menggunakan Winform

 IDENTITAS

Kelas : PBKK D
Tahun Ajaran : 2022 / 2023
Nama : Surya Abdillah
NRP : 5025201229
Github :Repositori

DESKRIPSI TUGAS

Membuat aplikasi kamera dengan beberapa fitur, yaitu:
  • Memilih kamera yang ingin digunakan
  • Menangkap hasil kamera
  • Menyimpan hasil kamera
Tampilan program yang akan dibuat sebagai berikut:

JAWABAN

1. Membuat Desain dari Program

2. Memasukkan Kode Program

Menangkap komponen kamera pada perangkat 
captureDevice = new FilterInfoCollection(FilterCategory.VideoInputDevice);
foreach (FilterInfo deviceList in captureDevice)
{
    comboBox1.Items.Add(deviceList.Name);
}
comboBox1.SelectedIndex = 0;
videoSource = new VideoCaptureDevice();

Button Start, untuk mengaktifkan kamera
        private void button1_Click(object sender, EventArgs e)
        {
            if (videoSource.IsRunning)
            {
                videoSource.SignalToStop();
                videoSource.WaitForStop();
                pictureBox1.Image = null;
                pictureBox1.Invalidate();
            }
            videoSource = new VideoCaptureDevice(captureDevice[comboBox1.SelectedIndex].MonikerString);
            videoSource.NewFrame += new NewFrameEventHandler(VideoSource_NewFrame);
            videoSource.Start();
        }
        
        private void VideoSource_NewFrame(object Sender, NewFrameEventArgs eventArgs)
        {
            pictureBox1.Image = (Bitmap)eventArgs.Frame.Clone();
        }

Button Capture, menangkap hasil kamera
        private void button2_Click(object sender, EventArgs e)
        {
            pictureBox2.Image = (Bitmap)pictureBox1.Image.Clone();
        }

Button save image, menyimpan hasil tangkap kamera dalam bentuk jpg ata png
        private void button3_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);
            }
        }

Button exit, mematikan kamera dan mengeluarkan program
        private void button4_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);
        }

Kode Lengkap
using System;
using System.Drawing.Imaging;
using System.Windows.Forms;
using AForge.Video;
using AForge.Video.DirectShow;

namespace Aplikasi_Kamera_PBBK_D
{
    public partial class Form1 : Form
    {
        private FilterInfoCollection captureDevice;
        private VideoCaptureDevice videoSource;

        public Form1()
        {
            InitializeComponent();
        }

        private void flowLayoutPanel1_Paint(object sender, PaintEventArgs e)
        {
            captureDevice = new FilterInfoCollection(FilterCategory.VideoInputDevice);
        }

        private void tableLayoutPanel1_Paint(object sender, PaintEventArgs e)
        {

        }

        private void Form1_Load(object sender, EventArgs e)
        {
            captureDevice = new FilterInfoCollection(FilterCategory.VideoInputDevice);
            foreach (FilterInfo deviceList in captureDevice)
            {
                comboBox1.Items.Add(deviceList.Name);
            }
            comboBox1.SelectedIndex = 0;
            videoSource = new VideoCaptureDevice();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            if (videoSource.IsRunning)
            {
                videoSource.SignalToStop();
                videoSource.WaitForStop();
                pictureBox1.Image = null;
                pictureBox1.Invalidate();
            }
            videoSource = new VideoCaptureDevice(captureDevice[comboBox1.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 button2_Click(object sender, EventArgs e)
        {
            pictureBox2.Image = (Bitmap)pictureBox1.Image.Clone();
        }

        private void button3_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 button4_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);
        }
    }
}

HASIL

Memilih kamera yang diinginkan

Testing Kamera

Save Image


Komentar

Postingan populer dari blog ini

Kalkulator Sederhana

Kalkulator Sederhana Membuat Projek Projek dibuat dengan memilih New Project dan menggunakan Empty Activities, beri nama projek sesuai selera, saya sendiri menggunakan nama MyCalculator dengan minimum SDK API 26 Oreo. Setelah itu klik Finish.  Menyusun Sumber Kode Aplikasi ini sangat sederhana, hanya cukup mengikuti beberapa langkah berikut: Buat variable num1 dan num2 untuk menyimpan nilai input dari user, jangan lupa untuk menambahkan import runtime.* Membuat TextField untuk menerima input dari user dengan mensingkronisasi variabel num1 dan num2 Membentuk operasi perhitungan dengan button dimana pada button menggunakan aktivitas perhitungan apabila diklik. input yang berupa string akan diubah menjadi integer dan dilakukan perhitungan yang sesuai. Hasil perhitungan akan ditampilkan sebagai pop up, hal ini dilakukan dengan Toast.  Hasil Akhir Referensi:  Referensi YT Sumber kode lengkap sebagai berikut:

Happy Birthday Dhiwa!

 Happy Birthday Dhiwa!     Apakah Anda bingung cara memberikan ucapan ulang tahun kepada teman Anda? Apabila iya, ucapan ulang tahun melalui aplikasi android bisa menjadi pilihan. Yuk kita mulai membuat ucapan ulang tahun dengan mengikuti tutorial yang ada ( tutorial ). Hasil Tampilan Sumber Kode

Sejarah Ponsel dan Teknologi Pemrograman Mobile

  Sejarah Ponsel dan Teknologi Pemrograman Mobile Surya Abdillah / 5025201229 / PPB I 2023-2024 Sejarah Ponsel Ponsel atau telepon seluler menurut KBBI memiliki makna “telepon mandiri yang menggunakan baterai, tanpa kabel, dan menerima suara melalui sinyal” (KBBI). Sejarah ponsel dimulai pada   tahun 1973 dimana ponsel pertama diciptakan. Detail perkembangan ponsel adalah sebagai berikut: 1973: ponsel pertama diciptakan, yakni DynaTAC 8000X. Ponsel ini diciptakan oleh Martin Cooper dari perusahaan Motorola. Memiliki berat 2,4 pound atau sekitar 1 kg. Ponsel ini dirilis dengan 4.000 USD, sedangkan ponsel itu seharga 10.000 USD atau setara 157 juta rupiah.        Dengan waktu mengisi daya selama 10 jam, ponsel ini hanya bisa digunakan selama 30 menit. 1983: DynaTAC dirilis untuk komersial konsumen, dengan harga yang sama yakni 4.000 USD. 1985: Siemens Mobiletelefon C1, yakni ponsel yang memiliki bentuk menyerupai tas kerja dimana ponsel ini d...