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

Вниз

Много анимированных GIF ов = много потоков?   Найти похожие ветки 

 
_ZeKa   (2006-09-28 14:47) [0]

Hi to all!
Возникла необходимость создать компонент в котором может крутиться большое кол-во анимированных GIF"ов. Использую модуль gifimage.pas Anders Melander"а. В нём имеется класс TPainter, который и отвечает за отрисовку анимированных гифов. Но он ориентирован на обработку только одного гифа. Значит при возрастании количетства изображений, будет и возрастать кол-во потоков. Можно ли это как-нибудь избежать. Может есть какие-нить другие библиотеки?


 
_ZeKa   (2006-09-28 15:57) [1]

Внесу ясность.
TPainter создаёт отдельный поток и работает только с одним гифом.
Хочется чтобы класс, подобный TPaniter"у, имел коллекцию этих гифов. Наверняка что-то подобное уже реализовано.


 
clickmaker ©   (2006-09-28 17:59) [2]

собссно такой компонент нетрудно написать...
procedure TGifThread.Execute;
begin
  while not Terminated do begin

      AImage := FImage.Frame[AIndex];
      PaintImage(AImage); // код можно передрать из gifimage.pas
      Inc(AIndex);
      if (AIndex = FImage.FrameCount) then AIndex := 0;
      Sleep(FrameDelay);
  end;
end;


 
Asteroid ©   (2006-09-29 03:54) [3]

> clickmaker ©   (28.09.06 17:59) [2]
Полагаю, что это будет не совсем корректно работать с несколькими гифами с разной длиной задержки между кадрами. Скорее всего для Sleep надо искать ближайший по времени следующего кадра gif...


 
_ZeKa   (2006-09-29 09:22) [4]

Точно :). Спасибо


 
clickmaker ©   (2006-09-29 10:18) [5]

собссно, самое главное забыл:

while not Terminated do begin
 for i := 0 to FImageCount - 1 do begin
   AImage := FImages[i].Frame[FImages[i].CurrentIndex];
   ...

т.е. один поток для всех



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

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

Наверх





Память: 0.45 MB
Время: 0.086 c
2-1179409650
Тимоха
2007-05-17 17:47
2007.06.10
цвет в итеме


2-1179841159
Sonia
2007-05-22 17:39
2007.06.10
Как показать на экран форму вперед главной


5-1155885569
karachun
2006-08-18 11:19
2007.06.10
Эксперт для создания компонентов


15-1179167527
@!!ex
2007-05-14 22:32
2007.06.10
1С под Linux


2-1179894522
allucard
2007-05-23 08:28
2007.06.10
Обяъсните неграмотному Packed Record





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский