GWT Image оригинальный размер - PullRequest
       7

GWT Image оригинальный размер

2 голосов
/ 10 августа 2011

Я использую объект Image для загрузки png-изображения в качестве эскиза, вызывая его метод setPixelSize () для изменения размера изображения.Мне также нужно получить оригинальный размер изображения в виде целых чисел в какой-то момент.Как я могу получить исходные размеры (ширина, высота) изображения?

хорошо, я нашел обходной путь: я использую фиктивный контейнер (SimplePanel) и загружаю изображение без масштабирования, сохраняя его реальные размеры, а затем удаляюконтейнер от родителя и отказаться от нового объекта изображения.Я не знаю, если это хороший обходной путь, но это работает.Хотя я хотел бы знать, есть ли другой способ ...

проблема обходного пути: у меня есть выпадающий список, из которого я могу выбрать логические папки (которые содержат изображения).Когда я выбираю новую папку, и новый набор изображений загружается на дисплей, я получаю 0 для ширины и 0 для высоты.

private void getTrueSize(String fullUrl) {
        Image trueImage = new Image();
        this.tstCon.add(trueImage);
        trueImage.setUrl(fullUrl);
        this.trueHeight = trueImage.getHeight();
        this.trueWidth = trueImage.getWidth();
        //this.tstCon.remove(trueImage);
        //trueImage = null;
        GWT.log("Image [" + this.imgTitle + "] -> height=" + this.trueHeight + " -> width=" + this.trueWidth);//
    }

Ответы [ 2 ]

1 голос
/ 10 августа 2011

Расширить класс Image и реализовать метод onAttach ().Этот метод вызывается, когда виджет присоединен к документу браузера.

public class Thumb extends Image {

    public Thumb(){
        super();
    }

    protected void onAttach(){
        Window.alert(getOffsetHeight()+" "+getOffsetWidth()); //this should give you the original value
        setPixelSize(10,10); // this should be the visible value 
        super.onAttach();
    }
}

, если это не работает, попробуйте реализовать onLoad () вместо onAttach (), так как onLoad () будет вызываться послеизображение добавляется в DOM, так что оно обязательно должно работать.

0 голосов
/ 10 августа 2011

Это самый простой способ создать новое скрытое изображение (помещенное абсолютно вне области просмотра) и прочитать размер. Существует JavaScript lib , который может читать данные exif изображения, но в этом случае это будет излишним.

...