jcrop没有裁剪正确的位置

时间:2015-03-10 18:31:19

标签: javascript jcrop

我使用jcrop设置了一个webapp,用户可以选择图片和宽高比为1:1的大小。 当我选择一个尺寸并使用php裁剪图像时,一切都很好,但是当我在选择尺寸后更改尺寸时,坐标会搞砸。由于用户必须能够随时改变大小,因此在选择其他大小时锁定其他大小并不是一种解决方法。

这是第一个尺寸的重新分配(这是正确的):

correct image

这是错误的结果:

wrong image

你看:要裁剪的尺寸正在发生变化,但是坐标有些奇怪... 每当我改变大小时都会发生这种情况。

以下是更改尺寸时触发的代码:

    function checkSize()
{
    if(direction == true)
    {
        $("#prevWrap").css({"display":"none"});
        $("#prevWrap2").css({"display":"block"});

        var splitted = currRatio.split('x');
        jcrop_api.setOptions({aspectRatio:parseInt(splitted[0])/parseInt(splitted[1]),
                                      minSize:[splitted[0],splitted[0]],maxSize:[splitted[0],splitted[0]],
                                      trueSize: [accW*(rationHeight/accH),rationHeight],
                                      boxHeight:435,
                                      setSelect: [0, 0, splitted[1], splitted[1]],});
    }else
    {
         $("#prevWrap").css({"display":"block"});
        $("#prevWrap2").css({"display":"none"});

        var splitted = currRatio.split('x');

        jcrop_api.setOptions({aspectRatio:parseInt(splitted[0])/parseInt(splitted[1]),
                                      minSize:[splitted[0],splitted[0]],maxSize:[splitted[0],splitted[0]],
                                      trueSize: [rationWidth,accH*(rationWidth/accW)],
                                      boxHeight:435,
                                      setSelect: [0, 0, splitted[1], splitted[1]],});
    }
}

currRatio是当前比率为" 600x600"或" 700x700"。 我将最小和最大尺寸设置为比率,因为我想禁用更改尺寸。 如果图像的宽度大于其高度,我想要" croppingarea"的高度。自动缩放到高度。所以我为trueSize设置: trueSize:[accW *(rationHeight / accH),rationHeight],其中accW是图像的实际宽度,并且是实际高度。 rationHeight再次是当前比率(因此与splitted [0]相同])

对于高度较高的图像,第二部分也是如此。因此缩放了

我希望有人能弄清楚我做错了什么

0 个答案:

没有答案