Анимированное изображение |
Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.
Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.
Анимированное изображение |
Cheburashka |
Сообщение
#1
|
Бывалый Группа: Пользователи Сообщений: 195 Пол: Мужской Реальное имя: Сергей Репутация: 2 |
Хотелось бы узнать, как можно вывести в на экран анимацию, и в дальнейшем с ней работать? Пробовал TImage ничего не получилось
-------------------- ♣♣♣
"Себя великим не считай, гордясь величьем предков, Величья не добудешь ты и золота ценою! Хоть светит на небе луна, но отраженным светом - Чужою славой не живи, не будь второй луною!!!" ♣♣♣ |
volvo |
Сообщение
#2
|
Гость |
В библиотеке RxLib есть компонент TRxGifAnimator, который из коробки работает с анимированными изображениями. Если хочется теми средствами, которые есть в Дельфи (по крайней мере, начиная с Д2007 это точно есть) - использовать модуль GIFImg, грузить изображение в TImage, и включать анимацию:
uses GifImg; На младших версиях Дельфи, скорее всего, придется покадрово записывать изображение в TImageList, и прокручивать кадры по таймеру. |
TarasBer |
Сообщение
#3
|
Злостный любитель Группа: Пользователи Сообщений: 1 755 Пол: Мужской Репутация: 62 |
На младших версиях Дельфи, скорее всего, придется покадрово записывать изображение в TImageList, и прокручивать кадры по таймеру. А TImageList будет знать, сколько раз в секунду надо крутить анимацию? Вроде у всех гифов скорость своя. -------------------- |
volvo |
Сообщение
#4
|
Гость |
Цитата TImageList будет знать, сколько раз в секунду надо крутить анимацию? А TImageList этого знать и не должен. Это должен знать Таймер. Если уж программист способен запихнуть кадры по отдельности в ImageList, то залезть в потроха GIF-а и получить частоту смена кадров для него тоже не должно составлять проблемы. |
TarasBer |
Сообщение
#5
|
Злостный любитель Группа: Пользователи Сообщений: 1 755 Пол: Мужской Репутация: 62 |
А TImageList этого знать и не должен. Это должен знать Таймер. Если уж программист способен запихнуть кадры по отдельности в ImageList, то залезть в потроха GIF-а и получить частоту смена кадров для него тоже не должно составлять проблемы. И при помощи какой функции производится залезание в потроха гифа? -------------------- |
Client |
Сообщение
#6
|
Профи Группа: Пользователи Сообщений: 865 Пол: Мужской Реальное имя: Вячеслав Репутация: 20 |
(Image1.Picture.Graphic as TGIFImage).AnimationSpeed
вроде это свойство |
volvo |
Сообщение
#7
|
Гость |
Цитата вроде это свойство Если у тебя есть TGifImage, то тебе не надо вручную устанавливать скорость, достаточно установить Animate в True. А залезание в потроха - читаем формат GIF-а, смотрим, где он хранит информацию о частоте смены кадров, и читаем ее прямо из файла. Мне это не нужно, я пользуюсь D2009, там есть TGifImage. Раньше, когда пользовался D6 - использовал GDI+ для отрисовки анимированных GIF-ов. |
Client |
Сообщение
#8
|
Профи Группа: Пользователи Сообщений: 865 Пол: Мужской Реальное имя: Вячеслав Репутация: 20 |
для проверки - при запуске анимации скорость всегда 100 у меня показывает. Вот и подумал что это то, что нужно.
Цитата там есть TGifImage Это прям компонент такой? у меня его нету, может надо эту библиотеку установить? |
volvo |
Сообщение
#9
|
Гость |
Во втором посте написано, что надо сделать:
Цитата uses GifImg; Да, это невизуальный компонент... Его нет в палитре. |
TarasBer |
Сообщение
#10
|
Злостный любитель Группа: Пользователи Сообщений: 1 755 Пол: Мужской Репутация: 62 |
> А залезание в потроха - читаем формат GIF-а, смотрим, где он хранит информацию о частоте смены кадров, и читаем ее прямо из файла.
Формат же закрыт, платен и запатентован, как я руками внутрь залезу? Стандартная функция какая-нибудь из стандартной виндовской библиотеки же должна быть? -------------------- |
Cheburashka |
Сообщение
#11
|
Бывалый Группа: Пользователи Сообщений: 195 Пол: Мужской Реальное имя: Сергей Репутация: 2 |
volvo, спасибо большое!
-------------------- ♣♣♣
"Себя великим не считай, гордясь величьем предков, Величья не добудешь ты и золота ценою! Хоть светит на небе луна, но отраженным светом - Чужою славой не живи, не будь второй луною!!!" ♣♣♣ |
Cheburashka |
Сообщение
#12
|
Бывалый Группа: Пользователи Сообщений: 195 Пол: Мужской Реальное имя: Сергей Репутация: 2 |
Сейчас попробовал сделать так как volvo посоветвал.
К сожаоению Delphi 7 не находит 'GifImg.dcu'. Нужна другая версия Делфи? Или можно сделать ещё что-нибудь? -------------------- ♣♣♣
"Себя великим не считай, гордясь величьем предков, Величья не добудешь ты и золота ценою! Хоть светит на небе луна, но отраженным светом - Чужою славой не живи, не будь второй луною!!!" ♣♣♣ |
volvo |
Сообщение
#13
|
Гость |
Цитата Нужна другая версия Делфи? Да, нужна Дельфи 2007 или выше. В семерке - либо рисовать через GDI+, либо подключать сторонние библиотеки. Ну, или самому разбивать GIF на кадры, и рисовать по таймеру. |
Cheburashka |
Сообщение
#14
|
Бывалый Группа: Пользователи Сообщений: 195 Пол: Мужской Реальное имя: Сергей Репутация: 2 |
Рисовать по кадрам очень долго придется... так как анимации в проекте будет много. Спасибо за совет... Сейчас буду качать новую версию делфи.
-------------------- ♣♣♣
"Себя великим не считай, гордясь величьем предков, Величья не добудешь ты и золота ценою! Хоть светит на небе луна, но отраженным светом - Чужою славой не живи, не будь второй луною!!!" ♣♣♣ |
Текстовая версия | 11.01.2025 15:39 |