Главная страница
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.052 c
2-1154090438
vain
2006-07-28 16:40
2006.08.20
Ссылки в программе


15-1153550962
DillerXX
2006-07-22 10:49
2006.08.20
Второй раз пытаюсь - опять никак :(


1-1152485956
Zonul
2006-07-10 02:59
2006.08.20
Вызов dll


1-1152192712
dvakar
2006-07-06 17:31
2006.08.20
Как сохранить содержимое WebBrowser на диск?


2-1154516059
VitV
2006-08-02 14:54
2006.08.20
DBGrid случайное расположение данных