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

в 16:29, , рубрики: gif, html, svg, XML, векторная графика, метки: ,

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

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

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

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

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

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

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

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

Хотелось бы получить фидбек на тему взлетит/не взлетит, возможные улучшения + просто потешить свое ЧСВ :)

Автор: Cosss

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js