вентилятор
Хорошего настроения!

Получить изображение с веб-камеры в форме на C#



В этой статье мы рассмотрим, как с помощью языка C# и библиотеки AForge.NET получить изображение с веб-камеры и отобразить его в форме Windows Forms. Работа с веб-камерой может быть полезна для создания различных приложений, таких как системы видеонаблюдения, видеочаты, распознавание лиц и других задач, связанных с обработкой изображений. AForge.NET предоставляет удобный и мощный интерфейс для работы с камерами и обработки изображений в .NET-приложениях. В этой статье мы рассмотрим шаги для создания простого приложения, которое получает изображение с веб-камеры и отображает его в PictureBox на форме.





Создадим проект в Visual Studio типа WindowsForms.


На форму добавим элементы: comboBox1 (для выбора веб-камеры), button1 (для запуска видеопотока), pictureBox1 (этот элемент будет показывать изображение с веб-камеры).


Форма - изображение с веб-камеры

Для выполнения этой задачи нам потребуется библиотека AForge.NET.





Подключим библиотеку AForge.NET к проекту


Чтобы подключить библиотеку AForge.NET к своему проекту в Visual Studio, нужно выполнить следующие шаги:


Скачайте AForge.NET с официального сайта разработчика: http://www.aforgenet.com/framework/downloads.html.


Разархивируйте скачанный архив и найдите файлы AForge.dll, AForge.Video.DirectShow.dll и AForge.Video.dll.


В обозревателе решений (Solution Explorer) выберите проект и щелкните правой кнопкой мыши.


В контекстном меню выберите команду "Добавить" > "Ссылку" (Add > Reference).


В открывшемся окне "Управление ссылками" (Reference Manager) выберите "Обзор" (Browse) и найдите файлы AForge.dll, AForge.Video.DirectShow.dll и AForge.Video.dll, которые вы разархивировали на первом шаге.


Выберите эти файлы и нажмите кнопку "ОК" (OK).


Теперь мы можем использовать библиотеку AForge.NET в своем проекте. Для этого необходимо добавить соответствующие директивы using в код нашего приложения.


Нажмём клавишу F7 и в код пропишем:


using AForge.Video;
using AForge.Video.DirectShow;




Получим изображение с веб-камеры в PictureBox


В начале класса Form1 заведём две переменные, которые помогут выполнить нам задачу.


Заводим переменные

Выведем все веб-камеры в ComboBox при загрузке формы.


Выведем все веб-камеры в ComboBox

При нажатии на кнопку (button1), будет запускаться видеопоток с выбранной веб-камеры и направляться в pictureBox1.





private void button1_Click(object sender, EventArgs e)
{
    FinalFrame = new VideoCaptureDevice(CaptureDevices[comboBox1.SelectedIndex].MonikerString);
    FinalFrame.NewFrame += new NewFrameEventHandler(FinalFrame_NewFrame);
    FinalFrame.Start();
}


private void FinalFrame_NewFrame(object sender, NewFrameEventArgs eventArgs)
{
    // Получаем изображение с веб-камеры
    Image image = (Bitmap)eventArgs.Frame.Clone();

    // Определяем размер PictureBox
    int pictureBoxWidth = pictureBox1.Width;
    int pictureBoxHeight = pictureBox1.Height;

    // Определяем размер полученного изображения
    int imageWidth = image.Width;
    int imageHeight = image.Height;

    // Масштабируем изображение, если оно не помещается в PictureBox
    if (imageWidth > pictureBoxWidth || imageHeight > pictureBoxHeight)
    {
        float aspectRatio = Math.Min((float)pictureBoxWidth / imageWidth, (float)pictureBoxHeight / imageHeight);
        int newWidth = (int)(imageWidth * aspectRatio);
        int newHeight = (int)(imageHeight * aspectRatio);
        Image scaledImage = image.GetThumbnailImage(newWidth, newHeight, null, IntPtr.Zero);
        image.Dispose();
        image = scaledImage;
    }

    // Отображаем изображение на PictureBox
    pictureBox1.Image = image;
}




В функции FinalFrame_NewFrame так же происходит масштабирование, чтобы изображение с веб-камеры полностью влезло в PictureBox.


Напишем обработчик события FormClosing.


Закрытие формы


Изображение веб-камеры в форме (результат)

В этой статье мы рассмотрели, как с помощью языка C# и библиотеки AForge.NET получить изображение с веб-камеры и отобразить его в форме Windows Forms. Мы создали простое приложение, которое захватывает изображение с веб-камеры и отображает его на форме. Надеюсь, эта статья была полезна для вас, и вы сможете использовать полученные знания в своих проектах.


Чтобы не набирать данный проект вручную, можете купить уже готовый за 600 499 рублей.


Купить проект данной программы

Стоимость: 600 499 рублей.



08-05-2023 в 13:11:16





Поддержать сайт:


Похожая статья:

Пишем Скриншотер на C#

Сегодня мы начнём создавать собственный сриншотер на языке программиро...

Категория: C#  Подкатегория: -
Дата: 09-10-2022 в 16:42:23 3


Комментарии:

Когда запускаю видеопоток, оперативная память начинает всё время кушаться, а когда останавливаю - не очищается. То есть запустил программу, видео показывает отлично, но число используемой оперативной памяти растёт. Как это фиксится?
Дмитрий 02-03-2024 в 19:01:23



Оставить коментарий:



Напишите email, чтобы получать сообщения о новых комментариях (необязательно):


Задача против робота. Расположите картинки горизонтально:




Нажимая кнопку Отправить, Вы соглашаетесь с политикой конфиденциальности сайта.