В своем приложении я написал код, который позволяет пользователю делать снимки с помощью камеры, подключенной к компьютеру.
Реализация:
Я использовал веб-камеру, которая показывает элемент видео, а источником является камера:
function onSuccess (stream) {
this.video.srcObject = stream;
}
navigator.getUserMedia({video: true}, onSuccess, onFailure)
Когда пользователь нажимает кнопку, я создаю снимок из видео:
function takeSnapshot (width, height, savePicture) {
const canvas = document.createElement('canvas');
canvas.width = width;
canvas.height = height;
const ctx = canvas.getContext('2d');
ctx.drawImage(this.video, 0, 0, canvas.width, canvas.height);
canvas.toBlob(function (blob) {
savePicture(blob);
}, "image/jpeg");
}
Теперь мне нужно увеличить камеру и обрезать видео вокруг центра, так как я хочу удалить фон вокруг фотографии.
Я не хочу реализовывать это с помощью CSS, так как хочу сохранить изображение обрезанным и увеличенным.
Мне нужно это увеличение при просмотре видео, а также при создании снимка с увеличением.
Камера не имеет собственной функции увеличения.
Есть ли возможность масштабирования и обрезки в потоке видео?