Простое исправление заключается в том, чтобы поставить слово static перед каждым методом. Это универсальная статическая окружность истины = 2pi * r, ваш круг может быть больше моего круга (оба экземпляра круга), но чтобы найти область, есть одна формула
Похоже, вам необходимо проверить PhotoCapabilities вашего ImageCapture, прежде чем вы сможете использовать параметр photoSettings в ImageCapture.takePhoto (photoSettings) . [1111 ]
Для этого вам необходимо вызвать метод getPhotoCapabilities()
вашего ImageCapture , а затем проверить диапазоны, установленные как imageHeight
и imageWidth
.
const capture = new ImageCapture(track);
const { imageWidth, imageHeight } = await capture.getPhotoCapabilities();
const width = setInRange(required_width, imageWidth);
const height = setInRange(required_height, imageHeight);
const photoSettings = (width && height) ? {
imageWidth: width,
imageHeight: height
} : null;
const pic = await capture.takePhoto(photoSettings);
function setInRange(value, range) {
if(!range) return NaN;
let x = Math.min(range.max, Math.max(range.min, value));
x = Math.round(x / range.step) * range.step; // take `step` into account
return x;
}
https://jsfiddle.net/bLrvyet5/
Но может случиться так, что требуемая ширина и высота не указаны в этих MediaSettingsRange ] и, таким образом, вам, возможно, придется самостоятельно изменить размер этого изображения на холсте.