Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Media";
Текущий архив: 2006.08.20;
Скачать: [xml.tar.bz2];

Вниз

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

 
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 вся ветка

Форум: "Media";
Текущий архив: 2006.08.20;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.048 c
15-1153472316
Strate
2006-07-21 12:58
2006.08.20
Тест браузеров


4-1146195109
Progh
2006-04-28 07:31
2006.08.20
Добавление и удаление сетевого ресурса


15-1153462144
Ega23
2006-07-21 10:09
2006.08.20
С Днём рождения! 21 июля


15-1153975595
syte_ser78
2006-07-27 08:46
2006.08.20
новостной скрипт


3-1149790819
Express
2006-06-08 22:20
2006.08.20
Завершение приложения в TDataModule





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский