3

使用jcrop库,我无法追查为什么回调上的返回对象可以并且有时包含小数。我希望所有 x1、x2、y1、y2、宽度和高度都是整数。

我对 jcrop 的初始化是:

$('img.jsEditable').Jcrop({
    bgColor: 'black',
    bgOpacity: .4,
    setSelect: [0, 0, crop_width, crop_height],
    aspectRatio: 1,
    onSelect: saveCoordinates,
    minSize: [crop_width, crop_height],
    maxSize: [400, 400]
  });

其中crop_width 和crop_height 只是我在其他地方设置的变量,恰好是150。我期望(如在演示中)它们是一个设置像素。

有什么想法吗?
有什么想法吗?

4

1 回答 1

4

这似乎是 Jcrop 0.9.9 和 0.9.10 之间的差异。如果您从网站http://deepliquid.com/projects/Jcrop/demos.php?demo=handler进入演示并拖动您周围的框,只会在回调中获得整数。该演示不是最新的,使用的是 Jcrop 0.9.9。

但是,如果您下载 Jcrop,您将获得 0.9.10 版本。下载中包含的演示也使用 Jcrop 0.9.10,并且您在回调中获得小数。如果您在演示中换出版本 0.9.10 并改用 0.9.9,则您只能在回调中获得整数坐标。

进一步研究,看起来在 jquery.Jcrop.js 的 0.9.10 版本中的第 656 行,坐标的舍入已被删除。回报来自:

return [ Math.round(xa), Math.round(ya), Math.round(xb), Math.round(yb) ];

return [xa, ya, xb, yb];

我不确定这是什么原因(我查看了 github 上的提交评论,但没有任何反应)但是如果你添加四舍五入,你将不会再在回调中得到小数。

于 2012-11-29T19:35:42.690 回答