IPB
ЛогинПароль:

> ВНИМАНИЕ!

Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

 
 Ответить  Открыть новую тему 
> Анимированное изображение
сообщение
Сообщение #1


Бывалый
***

Группа: Пользователи
Сообщений: 195
Пол: Мужской
Реальное имя: Сергей

Репутация: -  2  +


Хотелось бы узнать, как можно вывести в на экран анимацию, и в дальнейшем с ней работать? Пробовал TImage ничего не получилось smile.gif


--------------------
♣♣♣
"Себя великим не считай, гордясь величьем предков,
Величья не добудешь ты и золота ценою!
Хоть светит на небе луна, но отраженным светом -
Чужою славой не живи, не будь второй луною!!!"
♣♣♣
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гость






В библиотеке RxLib есть компонент TRxGifAnimator, который из коробки работает с анимированными изображениями. Если хочется теми средствами, которые есть в Дельфи (по крайней мере, начиная с Д2007 это точно есть) - использовать модуль GIFImg, грузить изображение в TImage, и включать анимацию:

uses GifImg;
// ...
Image1.Picture.LoadFromFile('blink.gif');
(Image1.Picture.Graphic as TGIFImage).Animate := True;


На младших версиях Дельфи, скорее всего, придется покадрово записывать изображение в TImageList, и прокручивать кадры по таймеру.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Злостный любитель
*****

Группа: Пользователи
Сообщений: 1 755
Пол: Мужской

Репутация: -  62  +


Цитата(volvo @ 4.07.2010 13:45) *

На младших версиях Дельфи, скорее всего, придется покадрово записывать изображение в TImageList, и прокручивать кадры по таймеру.


А TImageList будет знать, сколько раз в секунду надо крутить анимацию? Вроде у всех гифов скорость своя.


--------------------
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Гость






Цитата
TImageList будет знать, сколько раз в секунду надо крутить анимацию?
А TImageList этого знать и не должен. Это должен знать Таймер. Если уж программист способен запихнуть кадры по отдельности в ImageList, то залезть в потроха GIF-а и получить частоту смена кадров для него тоже не должно составлять проблемы.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Злостный любитель
*****

Группа: Пользователи
Сообщений: 1 755
Пол: Мужской

Репутация: -  62  +


Цитата(volvo @ 5.07.2010 15:43) *

А TImageList этого знать и не должен. Это должен знать Таймер. Если уж программист способен запихнуть кадры по отдельности в ImageList, то залезть в потроха GIF-а и получить частоту смена кадров для него тоже не должно составлять проблемы.


И при помощи какой функции производится залезание в потроха гифа?


--------------------
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Профи
****

Группа: Пользователи
Сообщений: 865
Пол: Мужской
Реальное имя: Вячеслав

Репутация: -  20  +


(Image1.Picture.Graphic as TGIFImage).AnimationSpeed
вроде это свойство
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Гость






Цитата
вроде это свойство
Если у тебя есть TGifImage, то тебе не надо вручную устанавливать скорость, достаточно установить Animate в True. А залезание в потроха - читаем формат GIF-а, смотрим, где он хранит информацию о частоте смены кадров, и читаем ее прямо из файла. Мне это не нужно, я пользуюсь D2009, там есть TGifImage. Раньше, когда пользовался D6 - использовал GDI+ для отрисовки анимированных GIF-ов.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Профи
****

Группа: Пользователи
Сообщений: 865
Пол: Мужской
Реальное имя: Вячеслав

Репутация: -  20  +


для проверки - при запуске анимации скорость всегда 100 у меня показывает. Вот и подумал что это то, что нужно.
Цитата
там есть TGifImage
Это прям компонент такой? у меня его нету, может надо эту библиотеку установить?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


Гость






Во втором посте написано, что надо сделать:
Цитата
uses GifImg;


Да, это невизуальный компонент... Его нет в палитре.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #10


Злостный любитель
*****

Группа: Пользователи
Сообщений: 1 755
Пол: Мужской

Репутация: -  62  +


> А залезание в потроха - читаем формат GIF-а, смотрим, где он хранит информацию о частоте смены кадров, и читаем ее прямо из файла.

Формат же закрыт, платен и запатентован, как я руками внутрь залезу? Стандартная функция какая-нибудь из стандартной виндовской библиотеки же должна быть?


--------------------
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #11


Бывалый
***

Группа: Пользователи
Сообщений: 195
Пол: Мужской
Реальное имя: Сергей

Репутация: -  2  +


volvo, спасибо большое!


--------------------
♣♣♣
"Себя великим не считай, гордясь величьем предков,
Величья не добудешь ты и золота ценою!
Хоть светит на небе луна, но отраженным светом -
Чужою славой не живи, не будь второй луною!!!"
♣♣♣
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #12


Бывалый
***

Группа: Пользователи
Сообщений: 195
Пол: Мужской
Реальное имя: Сергей

Репутация: -  2  +


Сейчас попробовал сделать так как volvo посоветвал.
К сожаоению Delphi 7 не находит 'GifImg.dcu'. Нужна другая версия Делфи? Или можно сделать ещё что-нибудь?


--------------------
♣♣♣
"Себя великим не считай, гордясь величьем предков,
Величья не добудешь ты и золота ценою!
Хоть светит на небе луна, но отраженным светом -
Чужою славой не живи, не будь второй луною!!!"
♣♣♣
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #13


Гость






Цитата
Нужна другая версия Делфи?
Да, нужна Дельфи 2007 или выше. В семерке - либо рисовать через GDI+, либо подключать сторонние библиотеки. Ну, или самому разбивать GIF на кадры, и рисовать по таймеру.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #14


Бывалый
***

Группа: Пользователи
Сообщений: 195
Пол: Мужской
Реальное имя: Сергей

Репутация: -  2  +


Рисовать по кадрам очень долго придется... так как анимации в проекте будет много. Спасибо за совет... Сейчас буду качать новую версию делфи.


--------------------
♣♣♣
"Себя великим не считай, гордясь величьем предков,
Величья не добудешь ты и золота ценою!
Хоть светит на небе луна, но отраженным светом -
Чужою славой не живи, не будь второй луною!!!"
♣♣♣
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 19.04.2024 6:40
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name