JCrop не обрезает изображение должным образом

Пользователю разрешено загружать изображения на мой сайт. Я изменяю размер изображения в зависимости от его высоты и ширины, это мой JQuery (imgSize — высота, а imgSize2 — ширина):

...
...
if (imgSize > 252 && imgSize2 <= 320) {
    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+100,0,0],
        minSize: [90,90],
        addClass: 'jcrop-light' 
     });
}

Обратите внимание, что я изменил высоту и ширину изображения #previewSub. Теперь вот остальная часть моего кода JCrop:

function showPreview(coords)
{
    $('#x').val(coords.x);
    $('#y').val(coords.y);
    $('#w').val(coords.w);
    $('#h').val(coords.h);

    var rx = 150 / coords.w;
    var ry = 150 / coords.h;
    var imgSize = $("#previewSub").height();
    var imgWidth =  $("#previewSub").width();
    $('#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'
    });
 }

Когда я использую php для захвата только что обрезанного изображения, кадрирование отключено. Он обрезает гораздо больше, чем должен. Любой способ обойти эту проблему? Проблема связана с тем, что я изменяю размер img #previewSub?


person buydadip    schedule 06.01.2016    source источник


Ответы (1)


Вы должны добавить истинный размер в настройки Jcrop:

trueSize: [imgwidth, imgheight],
person Alon Eitan    schedule 06.01.2016
comment
Не решил проблему полностью, мне пришлось сделать [imgwidth + 200, imgheight+200], и пока это работает для одного изображения. - person buydadip; 06.01.2016