GIF to MovieClip
Немного озадачивался темой GIF формата. С темой p=95 на bytearray.org сильно знаком. Именно эта штука вдохновила меня сделать совершенно по-другому.
Все ниже посвящено изображению в GIF-формате.
Сначала я затеял глубокую оптимизацию вышеупомянутого GIFPlayer'а. Но результат, если и улучшился, то не более чем на 20%. Картинка в 1 млн. пикселей (1 000 x 1 000 px) открывалась чуть меньше секунды. Такой результат меня не радовал. Ведь было с чем сравнивать. Если эту же (однокадровую картинку) загружать обычным Loader'ом, то время декодирования катастрофически падало до ~40-60 ms.
Решил в рантайме собирать SWF, которая содержит наследника MovieClip, шейпы в кадрах которого — это изображения кадров оригинального GIF-файла. Название класса задается разработчиком или повторяет URI gif-ресурса. SWF загружается через Loader#loadBytes. Инстанцировать экземпляр можно по имени через getDefinition или getDefinitionByName.
Где-то в конце списка демки есть файл (осторожно! трафик 2+ Mb)(~2 370 000 px ). Время декодирования ~60 ms на моей машинке.
Демку надо скачать и запустить локально.
Всего комментариев 3
Комментарии
![]() ![]() |
|
мощно. со слов я сперва не оценил =) :congr:
|
![]() ![]() |
|
Ну начал я все-таки с картинок, чтобы брать их из domain memory по getDefinition. Голубая мечта детства - улучшить твой ResourceManager ) а заодно и HeuristicLoader )
|
![]() ![]() |
|
у меня всё переделано уже напрочь =) в аську стукнись
|
Последние записи от dimarik
- Memory allocation на Vector.<IInterface> (07.05.2015)
- [Starling] Тормози меня плавно! (28.10.2014)
- [Starling идиотизмы] Об интерактивных событиях (02.10.2014)
- О типах исключений. (23.04.2014)
- Немного о Vector и ByteArray (28.03.2014)