Pull to refresh

Хитрый способ создания анимированного jpeg'а

Reading time1 min
Views52K

Сегодня с успехом осуществил свой эксперимент по сжатию гифок. Меня давно уже раздражает отсутствие специального формата для сжатия анимированных файлов. Как так, gif есть, а анимированного jpeg нет, хотя для большинства существующих гифок подходит именно jpeg.

От существующих решений, мое отличается тем, что это один файл svg, который можно вставить на страницу через тэг

Под хабракатом находится сжатая версия вот этой гифки tfirma.name/public/leprosorium.ru/cosss_gif/0004w00e.gif
Оригинал весит 6 мегабайт, сжатая версия — 1,3 мегабайта.

Осторожно! Данное решение имеет существенный недостаток, который выражается в высокой загрузке процессора (около 25%). Происходит это только во время загрузки файла, около 1-2 секунд, потом все возвращается в норму.




Работает это очень просто. Делается большой спрайт в формате jpeg. Внутри svg спрайт вставляется в base64. Анимация происходит средствами svg. Никаких скриптов.

Из минусов только вот этот баг с загрузкой процессора + неподдержка формата svg некоторыми браузерами.
Тормоза возможно связаны с декодированием base64 и (мне, по крайней мере) не доставляют больших неудобств.

Плюсы очевидны (по сравнение с gif): более быстрая загрузка, глубина цвета не ограничена 256 цветами, что в свою очередь позволяет избежать эффекта постеризации, написать сборщик в данный «формат» довольно простая задача.

Хотелось бы получить фидбек на тему взлетит/не взлетит, возможные улучшения + просто потешить свое ЧСВ :)
Tags:
Hubs:
Total votes 99: ↑78 and ↓21+57
Comments73

Articles