我使用jcrop设置了一个webapp,用户可以选择图片和宽高比为1:1的大小。 当我选择一个尺寸并使用php裁剪图像时,一切都很好,但是当我在选择尺寸后更改尺寸时,坐标会搞砸。由于用户必须能够随时改变大小,因此在选择其他大小时锁定其他大小并不是一种解决方法。
这是第一个尺寸的重新分配(这是正确的):
这是错误的结果:
你看:要裁剪的尺寸正在发生变化,但是坐标有些奇怪... 每当我改变大小时都会发生这种情况。
以下是更改尺寸时触发的代码:
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]相同])
对于高度较高的图像,第二部分也是如此。因此缩放了
我希望有人能弄清楚我做错了什么