Работа с гиф анимацией, И только кошка гуляет сама по себе... )))) |
Здравствуйте, гость ( Вход | Регистрация )
Работа с гиф анимацией, И только кошка гуляет сама по себе... )))) |
igor_bogomolov |
29.5.2009, 13:32
Сообщение
#1
|
Профессионал Группа: Сомодератор Сообщений: 1215 Регистрация: 22.3.2009 Из: Саратов Пользователь №: 630 Спасибо сказали: 235 раз(а) Репутация: 29 |
Привет всем.
Недавно задался вопросом, как можно средствами Qt вытащить кадр из gif. Оказалось, что для этого существует класс QImageReader. Для работы с графическими файлами поддерживающих анимацию, есть методы, которые позволяют нам узнать, сколько кадров содержит файл, период обновления кадров, возможно ли перейти на кадр с определенным номером, и т.д. Но, при работе с этими методами возникли некоторые "трудности". методы Цитата int QImageReader::loopCount () const всегда возвращают ноль, т.е. мы не можем узнать, сколько реально кадров содержит файл.int QImageReader::imageCount () const Цитата bool QImageReader::jumpToImage ( int imageNumber ) всегда возвращают false, и мы не знаем, можем ли мы считывать следующий кадр или нет. Усложняемся все тем, что если мы производим лишнюю операцию чтения, возникает непонятная для меня ошибка, и даже если мы снова сделаем setFileName, считать мы больше ничего не сможем. Т.е. новый цикл анимации не начнем.bool QImageReader::jumpToNextImage () Собственно говоря, у меня вопрос к сообществу. Что это бага, или я не разобрался в вопросе? ------------------------------------------------------------------------------------------------------------ Тем не менее, если вручную контролировать количество кадров (можно узнать любым графическим редактором), работа с гиф анимацией становится простой и удобной. Предлагаю, на мой взгляд, очень интересную демку. Надеюсь Вам понравится . Компилируем, смотрим, отписываемся о результатах.
Прикрепленные файлы
|
|
|
Текстовая версия | Сейчас: 4.12.2024, 2:25 |