Сегодня с успехом осуществил свой эксперимент по сжатию гифок. Меня давно уже раздражает отсутствие специального формата для сжатия анимированных файлов. Как так, gif есть, а анимированного jpeg нет, хотя для большинства существующих гифок подходит именно jpeg.
От существующих решений, мое отличается тем, что это один файл svg, который можно вставить на страницу через тэг <img>
Под хабракатом находится сжатая версия вот этой гифки tfirma.name/public/leprosorium.ru/cosss_gif/0004w00e.gif
Оригинал весит 6 мегабайт, сжатая версия — 1,3 мегабайта.
Осторожно! Данное решение имеет существенный недостаток, который выражается в высокой загрузке процессора (около 25%). Происходит это только во время загрузки файла, около 1-2 секунд, потом все возвращается в норму.
Работает это очень просто. Делается большой спрайт в формате jpeg. Внутри svg спрайт вставляется в base64. Анимация происходит средствами svg. Никаких скриптов.
Из минусов только вот этот баг с загрузкой процессора + неподдержка формата svg некоторыми браузерами.
Тормоза возможно связаны с декодированием base64 и (мне, по крайней мере) не доставляют больших неудобств.
Плюсы очевидны (по сравнение с gif): более быстрая загрузка, глубина цвета не ограничена 256 битами, что в свою очередь позволяет избежать эффекта постеризации, написать сборщик в данный «формат» довольно простая задача.
Хотелось бы получить фидбек на тему взлетит/не взлетит, возможные улучшения + просто потешить свое ЧСВ :)
Автор: Cosss