Загрузка эскизов на холсте занимает слишком много времени, с SWT - PullRequest
1 голос
/ 22 сентября 2010

Привет У меня есть приложение, которое загружает все изображения из папки на холсте, по вертикали.Как миниатюры.В этих папках обычно содержится более 20 изображений, около 1 МБ, иногда даже 2. Я создал класс Index, который расширяет canvas.

Мне удалось загрузить все изображения и изменить их размер до нужного размера (исходного размера).около 1280x1985, да, они довольно большие. Но это занимает слишком много времени, и я думаю, я знаю, почему, но я не знаю, как это исправить или сделать лучше.

public void loadImages(){
        System.out.println("Loading Images");
        List<String> imageList = new ArrayList<String>();
        imageList = listDirImages(this.strDir);
        int listSize=imageList.size();
        for(int i=0;i<listSize;i++){
            System.out.println(imageList.get(i));
            Image sourceImage;
            System.out.println(strDir.concat("/".concat(imageList.get(i))));
            try {
                sourceImage = new Image(getDisplay(),strDir.concat("/".concat(imageList.get(i))));
                //sourceImage[i] = new Image(getDisplay(),strDir.concat("/".concat(lsImagenes.get(i))));
            }catch(Exception e){
                System.out.println(e);
                //band=1;
            }
        }
    }

Эта функция использует каталог, затемон вызывает функцию для перечисления всех изображений. Он перечисляет все изображения. Исходный код был другим, но я попытался исключить код, чтобы увидеть, где он занимает так долго. Исходный sourceImage был массив изображений (я не знаю, еслиэто лучше), и я изменил размеры изображений, создав новые, но их создание заняло больше времени.

с 25 изображениями для загрузки этой части требуется почти 45 секунд, я знаю, проблема в том, что я загружаюполное изображение, и они довольно тяжелые. Есть ли способ загрузить их непосредственно в миниатюру? Некоторые папки имеют около 80 страниц, то естькак 2 минуты(С одной стороны, я думаю, что мне нужно это как поток, чтобы вся программа могла запускать другие вещи во время загрузки индекса.

1 Ответ

0 голосов
/ 22 сентября 2010

Вам нужно предварительно создать эскизы на сервере и просто загрузить их с помощью JavaScript. Даже если существует способ загрузки изображений непосредственно в виде миниатюр, клиент все равно будет загружать полноразмерное изображение для создания миниатюры, и это плохо для пропускной способности сети.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...