【发布时间】:2012-03-27 09:13:12
【问题描述】:
我有一个生成 SVG 文件的 GWT 应用程序。
我想将来自某个 URL 的图像嵌入到我的 SVG 中,但我希望调整它的大小以保持正确的纵横比。
我通过使用 GWT 中的 Image 类加载图像来做到这一点,并检查高度到宽度,然后进行一些求和以找到我需要它在我的 SVG 中的高度和宽度。
我将图像嵌入到 SVG 中,如下所示:
<image href="http://some.image/URL.png" height="100" x="50" width="150" y="50"></image>
我遇到的问题是当我执行以下操作时:
Image image = new Image(sourceURL);
int width = image.getWidth();
int height = image.getHeight();
....
我第一次对特定 URL 执行此操作时,宽度或高度的值返回为 0。 不幸的是,在循环中重试似乎并不能解决问题,但如果我要求我的应用程序再次生成 SVG,它就可以工作。
有什么想法吗?
【问题讨论】:
-
请记住,只要图像尚未加载,宽度和高度是未知的。您可能应该等待“Loaded”事件被触发,然后执行您的操作。
-
@GuillaumePolet 我尝试这样做,但事件花了一分钟多的时间才被解雇。但是,如果我在 10 秒内两次询问应用程序,它会在第二次尝试时立即加载。
-
您的代码一定有问题,因为我已经成功使用了这些方法,并且加载时间不长。您可以尝试在 SSCCE (sscce.org) 中重现错误吗?它可以帮助你找到你的错误。如果没有,我们可以看看。
-
事实上我刚刚再试了一次,我从来没有看到加载处理程序被调用,即使图像宽度返回为非零。
标签: java javascript gwt svg gwt2