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

Вниз

Много анимированных 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 вся ветка

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

Наверх




Память: 0.47 MB
Время: 0.018 c
15-1176818174
pasha_golub
2007-04-17 17:56
2007.06.10
Посоветуйте спелл чекер


3-1174556149
dolmat
2007-03-22 12:35
2007.06.10
Изменение свойств поля


15-1179219626
Rule
2007-05-15 13:00
2007.06.10
Открыл для себя новую альтернативу жабы


1-1176236761
Gringoire
2007-04-11 00:26
2007.06.10
Как через программу созданую в Delphi запустить другую программу?


11-1161854783
Thaddy
2006-10-26 13:26
2007.06.10
kolnmck down?