#javascript #jquery #face-detection #cropperjs
#javascript #jquery #распознавание лиц #cropperjs
Вопрос:
во время проекта мне нужно настроить обрезку, связанную с распознаванием лиц. Распознавание лиц работает хорошо, но программа обрезки изменяет формат изображения с его объектом, координаты, возвращаемые facedetector, являются ложными. Знаете ли вы, как применить facedetector после изменения изображения с помощью интерфейса cropper?
var image = document.getElementById('img');
var cropper = new Cropper(image, {
/* aspectRatio: 9 / 16,*/
// autoCrop: true,
scalable: false,
cropBoxResizable: false,
guides: true,
dragMode: 'none',
preview: '.preview',
data:{
width: 250,
height: 325,
},
crop: function(e) {
$('#x').val(e.detail.x);
$('#y').val(e.detail.y);
$('#w').val(e.detail.width);
$('#h').val(e.detail.height);
},
});
$('#img').faceDetection({
complete: function (faces) {
console.log(faces)
initx = faces[0].x;
inity = faces[0].y;
cropper.data({x:120,y:init});
}
});
Ответ №1:
Вероятно, вам нужно сначала получить координаты, а затем начать Cropper
с этих координат, например:
const img = $('img');
img.faceDetection({
complete: function (faces) {
initCropper(faces[0]);
}
});
function initCropper(data) {
cropper = new Cropper(img[0], {
data
});
}
Комментарии:
1. спасибо за ваш ответ, но ваше решение возвращает мне ошибку:
Uncaught DOMException: Index or size is negative or greater than the allowed amount
у вас есть идея, как решить эту проблему?2. Вы уверены, что он находит лица? Можете ли вы воспроизвести проблему в jsbin или что-то в этом роде, чтобы я мог попытаться ее отладить?