GWT中的缩放和裁剪图像

时间:2011-12-23 11:31:22

标签: html5 gwt gwt2

我正在尝试使用GWT实现图库。我的目的是显示一个专辑列表,当你点击其中一个显示一个带有照片缩略图的网格时,当你点击其中一个时,在弹出窗口中显示全尺寸图像。我已经成功完成了第一点和最后一点,但是我在构建缩略图时遇到了很多问题。

我的想法是使用方形,固定大小的缩略图。为此,我尝试缩放然后裁剪它们。但它不起作用。如果我只缩放它们就行了,如果我只裁剪它就可以了,但是当我尝试缩放和裁剪时,只执行最后一次操作。这就是我编写的代码:

prop = (float)img.getWidth() / img.getHeight();
thumb = new Image(img.getUrl());
if (thumb.getWidth() > thumb.getHeight()) {
    thumb.setHeight("150px");
    thumb.setWidth(String.valueOf(150 * prop) + "px");
} else {
    thumb.setWidth("150 px");
    thumb.setHeight(String.valueOf(150 * Prop) + "px");
}

offset = thumb.getHeight()*(prop-1) / 2;

if (thumb.getWidth() > thumb.getHeight()) {
    thumb.setVisibleRect((int)offset, 0, 150, 150);
} else {
    thumb.setVisibleRect(0, (int)offset, 150, 150);
}           

我一直在寻找这方面的帮助,我找到了几个解决方案。基于another question in this website,我找到this,但它不适用于我的情况,因为我需要以动态方式加载图像。我还在this example之后尝试了GWT和HTML5,但是当执行以下方法时:

ImageData imageData = context.getImageData(sx, sy, sw, sh);

它引发了以下异常:

(NS_ERROR_DOM_INDEX_SIZE_ERR): Index or size is negative or greater than the allowed amount

所以,如果有人知道如何使用纯GWT或解决HTML5错误,我将非常高兴,我已经坚持了好几周:( ...提前感谢!

0 个答案:

没有答案
相关问题