Проверка размера изображения с помощью GWT - PullRequest
3 голосов
/ 10 марта 2012

У меня есть приложение GWT, которое генерирует файлы SVG.

Я хочу встроить изображение из какого-либо URL в мой SVG, но я хочу, чтобы оно было изменено с сохранением правильного соотношения сторон.

Я делаю это, загружая изображение, используя класс Image в GWT, и проверяю высоту на ширину, затем делаю некоторые суммы, чтобы найти высоту и ширину, которые мне нужны, чтобы быть в моем 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, это работает.

Есть идеи?

1 Ответ

4 голосов
/ 10 марта 2012

Хорошо, извините, это не ответ, но комментарии слишком малы, чтобы добавить код.

Я попробовал следующее, и это сработало отлично. Поэтому вам, вероятно, следует попытаться изолировать вашу проблему в небольшом фрагменте кода:

    @Override
    public void onModuleLoad() {

    final Image image = new Image("https://www.google.com/images/srpr/logo3w.png");
    image.addLoadHandler(new LoadHandler() {

        @Override
        public void onLoad(LoadEvent event) {
            Window.alert(image.getWidth() + " " + image.getHeight());
        }
    });
    RootLayoutPanel.get().add(image);
    }
...