Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C++ Builder > TGIFImage в отдельном потоке


Автор: bobm 11.11.2005, 18:48
Подскажите плиз:
использую TGIFImage от Anders Melander (v 7)
в BCB6,
при простой загузке gif файла в TImage все нормально, но притормаживает интерфейс программы , когда несколько анимированных гифов.
Пытался запустить каждый гиф в своем потоке, там есть функция Paint, запускается , но плохое качество отрисовки , если требуется масштабирование, вроде все варианты опций перепробовал. Может, кто сталкивался ?

запускаю вот таким образом:

TGIFImage *gif;
TGIFPainter *t;

gif = new TGIFImage();
gif->LoadFromFile("tehn.gif");
gif->ThreadPriority = tpIdle;
TGIFDrawOptions opt;
opt << goAsync << goAnimate << goLoop << goLoopContinously << goDirectDraw << goDither << goAutoDither << goTransparent << goClearOnLoop;
t = gif->Paint(PaintBox1->Canvas, Rect(0,0,PaintBox1->Width,PaintBox1->Height), opt);

Отображается, можно остановить t->Stop();
Но качество жуткое,если размер гифа и пейнтбокса различны
А если просто считать gif в компонент TImage,то и рисуется и масштабируется нормально,а это ведь тот же TGIFImage отрисовывает

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)