Я пытаюсь обрезать изображение с помощью JCrop, однако изображение, которое я сохраняю на своем сервере, перекошено. Я не могу заставить размеры работать должным образом. Вот мой код JCrop:
...
var imgwidth = $("#previewSub2").width();
var imgheight = $("#previewSub2").height();
$("#previewSub").css("height", "220px");
$("#previewSub").css("width", "auto");
$("#previewSub").Jcrop({
onChange: showPreview,
onSelect: showPreview,
aspectRatio: 1,
setSelect: [0,imgwidth,0,0],
minSize: [90,90],
addClass: 'jcrop-light'
});
Обратите внимание, что #previewSub
— это изображение, которое я обрезаю, а #previewSub2
— это миниатюра (предварительный просмотр) обрезаемого изображения. Вот остальная часть моего кода JCrop:
function showPreview(coords)
{
var imgSize = $("#previewSub").height();
var imgWidth = $("#previewSub").width();
var rx = 150 / coords.w;
var ry = 150 / coords.h;
$('#x').val(coords.x);
$('#y').val(coords.y);
$('#w').val(rx*imgWidth);
$('#h').val(ry*imgSize);
$('#previewSub2').css({
width: Math.round(rx * imgWidth) + 'px',
height: Math.round(ry * imgSize) + 'px',
marginLeft: '-' + Math.round(rx * coords.x) + 'px',
marginTop: '-' + Math.round(ry * coords.y) + 'px'
});
}
Для #x
, #y
, #w
, #y
я не совсем уверен, какие значения поставить для val()
. Я пробовал всевозможные комбинации, но кадрирование всегда было выключено.
Обратите внимание, что предварительный просмотр эскизов работает корректно.