nodejs webcam
Для получения изображения с веб-камеры в Node.js вам понадобится использовать библиотеку, позволяющую взаимодействовать с веб-камерой и захватывать изображения. Одним из популярных вариантов для этой цели является библиотека "node-webcam".
Вот пример использования библиотеки "node-webcam" для получения изображения с веб-камеры:
const NodeWebcam = require( "node-webcam" );
// Настройки для захвата изображения с веб-камеры
const opts = {
width: 1280,
height: 720,
quality: 100,
delay: 0,
saveShots: true,
output: "jpeg",
device: false,
callbackReturn: "location",
verbose: false
};
// Создание экземпляра веб-камеры
const Webcam = NodeWebcam.create( opts );
// Захват изображения с веб-камеры
Webcam.capture( "test_picture", (err, data) => {
if (err) {
console.error(err);
} else {
console.log("Изображение успешно захвачено:", data);
}
});
Конечно, вот пример простого скрипта сервера на Node.js, который использует Express.js для создания сервера и позволяет получить изображение с веб-камеры:
const express = require('express');
const app = express();
const path = require('path');
// Устанавливаем папку для статических файлов
app.use(express.static('public'));
// Маршрут для загрузки страницы с видеопотоком с веб-камеры
app.get('/', (req, res) => {
res.sendFile(path.join(__dirname, 'index.html'));
});
// Запуск сервера на порте 3000
app.listen(3000, () => {
console.log('Сервер запущен на порте 3000');
});
Создайте файл index.html в папке public с содержимым для отображения видеопотока с веб-камеры и кнопки для захвата изображения.
<!DOCTYPE html> <html lang="ru"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Захват изображения с веб-камеры</title> </head> <body> <h1>Веб-камера</h1> <video id="webcam-video" autoplay></video> <button id="capture-button">Захватить изображение</button> <canvas id="captured-image"></canvas> <script src="main.js"></script> </body> </html>
Создайте файл main.js для обработки захвата изображения с веб-камеры.
// Получаем доступ к видеопотоку с веб-камеры
navigator.mediaDevices.getUserMedia({ video: true })
.then(stream => {
const video = document.getElementById('webcam-video');
video.srcObject = stream;
})
.catch(error => {
console.error('Ошибка при получении доступа к веб-камере:', error);
});
// Захват изображения с веб-камеры
const captureButton = document.getElementById('capture-button');
captureButton.addEventListener('click', () => {
const video = document.getElementById('webcam-video');
const canvas = document.getElementById('captured-image');
canvas.width = video.videoWidth;
canvas.height = video.videoHeight;
canvas.getContext('2d').drawImage(video, 0, 0, canvas.width, canvas.height);
});
Этот пример создает простой сервер на Node.js с использованием Express.js, который позволяет получить изображение с веб-камеры.