Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.08.20;
Скачать: CL | DM;

Вниз

Ускорение слайд-шоу   Найти похожие ветки 

 
sco ©   (2006-02-20 13:50) [0]

Я делаю слайд-шоу, и у меня проблема со скоростью. Я юзаю FastLib, вот мой код:

 Temp:=TBitMap.Create;
 LoadBmpFromJpegFile(temp,DataDir+
  NowData[LoadPosition-1].fileName,true);
 Temp.SaveToFile("temp.bmp");
 Temp.Free;

 Image.BilinearResize:=false;
 Image.LoadFromFile("temp.bmp");
 Image.BilinearResize:=true;

Ну если просто смотреть слайд-шоу то проблем нет, но если быстро прокручивать рисунки, то прога конкретно не успевает за юзером. Причина: FastImage не умеет следущие вещи:
Assign(BitMap)
LoadFromFile(jpgImage)
Там ваще странный какой-то тип. В общем вопрос: как мне реализвать быструю прокрутку, но только если решение: показывать картинку вначале плохого качества а потом хорошего, то как ето реализовать чтобы работало ( я что то плохо представляю ). Ну и надо чтобы если юзер решил не мотать, а смотреть то картинка должна быть: Image.BilinearResize:=true;


 
Jeer ©   (2006-02-20 14:32) [1]

Тебе надо, ты и напиши улучшенный FastImage.
Раздай и многие скажут спасибо.


 
Sapersky   (2006-02-20 16:20) [2]

Рекомендую вообще забыть о FastImage. Автор, во всяком случае, забыл - в последней версии FastLIB"а он отсутствует:

http://prdownloads.sourceforge.net/skinner/FastLib.zip?download

Там же пример отображения FastDIB обычным TImage"ем. Но лучше рисовать (и делать нужное масштабирование) вручную по OnPaint.
Или, если совсем уж никак, переписать Bilinear для TBitmap. Там и менять практически ничего не надо, Width, Height, Scanline есть и у того, и у другого. Ну объявить ещё PLine24, PFColor.


 
Jeer ©   (2006-02-20 16:52) [3]

Sapersky   (20.02.06 16:20) [2]

"Как много нам открытий чудных, готовит просвещенья дух"


 
Fenik ©   (2006-02-20 20:13) [4]

FastLib в данном случае практически не играет роли ускорителя. Он нужен для ускорения только при попиксельной обработке.
Вся фишка в том, что картинка, следующая за показанной, должна кэшироваться. И когда юзер перелистывает, она просто рисуется из памяти и тут же загружается следующя за ней. И, если волнует скорость, то ни в коем случае не юзать стандартный JPEG.pas, а взять библиотеку от Intell.


 
Fenik ©   (2006-02-20 20:25) [5]

А, ну если BilinearResize, то да..


 
Sapersky   (2006-02-21 14:20) [6]

"Как много нам открытий чудных, готовит просвещенья дух"

Надеюсь, это не означает, что я ляпнул какую-то глупость и следует срочно просветиться? :)

Вся фишка в том, что картинка, следующая за показанной, должна кэшироваться.

Угу, ему это уже советовали раза 2 или 3. Теперь будет 4 :)
Ещё c помощью IJL можно грузить jpeg по частям, с отображением загруженных частей в процессе загрузки. ACDSee (смотрел 6-ю версию) совмещает этот метод с "кэшированием" - заметно на первой картинке, или на всех, если отключить "кэширование".


 
Jeer ©   (2006-02-21 15:47) [7]

Sapersky   (21.02.06 14:20) [6]

Конечно нет, все правильно написал.
Это для автора вопроса - много новых и незнакомых слов проявилось при описании такой простой задачки.
Предстоит ознакомиться.
Ему.



Страницы: 1 вся ветка

Текущий архив: 2006.08.20;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.118 c
15-1153510455
Андрей Пазик
2006-07-21 23:34
2006.08.20
Интернет-форумы как помойная яма


2-1154244683
vain
2006-07-30 11:31
2006.08.20
«Дескриптор»


2-1154097089
miSTER-TWISTER
2006-07-28 18:31
2006.08.20
загрузить комп


2-1154521483
Id
2006-08-02 16:24
2006.08.20
Функции в Delphi


1-1152173646
Dimedrol
2006-07-06 12:14
2006.08.20
Большие массивы для HASH