Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.06.2011, 19:12   #1
assch
Пользователь
 
Регистрация: 13.09.2010
Сообщений: 65
По умолчанию Узнать время задержки в GIF

В одной статье GDI+: графика нового поколения нашёл пример как вывести анимированный Gif в окно приложения
Но там было сказано что в примере вывод анимации намеренно происходит с максимально возможной скоростью,
для наглядного показа производительности. В реальном же приложении потребуется получить
параметры задержки кадров из графического файла (вызвав функцию Image::GetPropertyItem с параметром
PropertyTagFrameDelay).

Сам алгоритм выглядит так:

Код:
invoke MultiByteToWideChar,0,0,addr buffer,-1,addr Unicod,addr Char
invoke GdipLoadImageFromFile,addr Unicod, addr hImag
invoke GdipGetImageWidth, hImag, addr sWidth
invoke GdipGetImageHeight, hImag, addr sHeight
invoke GdipImageGetFrameDimensionsCount, hImag,addr sFdcount
invoke GdipImageGetFrameDimensionsList, hImag,addr pGUID,sFdcount
invoke GdipImageGetFrameCount, hImag,addr pGUID,addr sFrame
invoke GdipImageSelectActiveFrame, hImag,addr pGUID,pFrame
В последней функции GdipImageSelectActiveFrame находится

hImag - адрес где лежит кадр файла
pFrame - номер кадра

дальше нужно подключать функцию GdipGetPropertyItem (чтобы вытащить время задержки кадра)
Константа параметра PropertyTagFrameDelay - 5100h

Код:
invoke GdipGetPropertyItemSize, hImag,5100h,addr pbyte
invoke GdipGetPropertyItem,hImag,5100h,pbyte,addr xxx
Пришлось подключить функцию GdipGetPropertyItemSize (как того требовало описание функции GdipGetPropertyItem)
Но нечего так и не добился (хотя не исключено что я всё сделал не правильно)

Кто нибудь в курсе этой темы?
Подскажите пожалуйста
assch вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как узнать время в Delphi? cyberandom Помощь студентам 3 06.04.2010 19:59
как узнать время изменения файла Assemblerru Общие вопросы C/C++ 2 26.03.2010 20:47
Узнать время существования окна SamuraiPro Win Api 10 18.12.2009 15:23
время задержки приема байт varelik Общие вопросы Delphi 4 14.12.2009 09:58
Как программно узнать время? Bigtyoma Общие вопросы Delphi 4 15.03.2009 05:38