archakov06
@archakov06
Frontend-разработчик (ReactJS)

Почему CropperJS неверно указывает минимальный размер обрезки?

Для обрезки аватарки, использую библиотеку - https://github.com/fengyuanchen/cropperjs

Размер изображения 1280х965. Вбил такие настройки:
this.Cropper = new Cropper(this.image, {
      guides: false,
      zoomable: false,
      viewMode: 2,
      aspectRatio: 40 / 54,
      minCropBoxWidth: 400,
      minCropBoxHeight: 540,
      responsive: true,
      crop: function(e) {
        console.clear();
        console.log(e.detail.width);
        console.log(e.detail.height);
      },
    });


5acc9f301e73b827551563.png

Пытаюсь уменьшить область обрезки, но размер не уменьшается до 400х540, хотя размер - 1280х965

В консоли такие значения
5acc9f937a50d656914053.png
  • Вопрос задан
  • 531 просмотр
Решения вопроса 1
FFxSquall
@FFxSquall
Могу писать код, могу не писать
e.detail.width и e.detail.height показывают рельные размеры выделенной области на основе заданного aspectRatio. Что бы в итоге получить желаемый размер, нужно как минимум определится, где вы будете делать обрезу на сервере или на клиенте, если на сервере то как раз параметры из event'a в crop коллбеке вам пригодятся, если на клиенте, то надо сделать например так

cropper.getCroppedCanvas({
  width: 400,
  height: 540
}).toBlob(function (blob) {
  // тут выполнить upload на сервер
});;
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы