0

我在http://code.google.com/p/gwt-examples/wiki/gwt_hmtl5使用了这段代码(一种教程) ......在这段代码中,我使用了“图像缩放/调整大小”代码,我发现我无法解释的事情。我的意思是,而不是使用:

final Image img = new Image("/img/test.jpg");

我使用了客户端捆绑包,因此使用了以下代码:

final Image img = new Image(NormalResources.NORMAL_RES_INSTANCE.axl1());

而且我没有任何错误,但图像没有出现。最后我找到了解决方案:

final Image img = new Image(NormalResources.NORMAL_RES_INSTANCE.axl1().getSafeUri());

您知道“.getSafeUri()”解决问题的原因吗?

4

1 回答 1

1

将ClientBundle中的 ImageResource 视为真正的 <img> 元素

用anImage创建的ImageResource将无条件使用裁剪图像,其中图像设置为 CSS 背景图像(并且<img>'ssrc是 1×1px 透明 GIF)。因为图像实际上是一个空白的 GIF,所以将它绘制到画布上并没有什么明显的效果;canvas 不考虑 CSS 样式。

使用getSafeUri()您将获得图像的URL ,该data:URL 将用作src. <img>不在blank.gif这里,所以图像被正确地绘制在画布上。

但请注意,默认情况下这IE6 和 IE7 中getSafeUri()不起作用。如果您需要支持它们,则必须使用或注释您的 s 。或者,您可以使用s 代替s。ImageResource@ImageOptions(preventInlining = true)@ImageOptions(repeatStyle = RepeatStyle.Both)DataResourceImageResource

于 2012-06-07T08:57:57.463 回答