Окт 17, 2014 - 0 Comments - Интересно -

Представлен формат анимированных изображений XNG, совместимый с существующими браузерами

Джаспер Пьер (Jasper St. Pierre), участвующий в работе над проектами GNOME и Wayland, рассказал о создании нового формата изображений XNG, позиционируемого как улучшенная альтернатива GIF для распространения анимации в Web. По мнению Джаспера GIF является отличным форматом для анимации, но он не лишён недостатков, таких как применение старого алгоритма сжатия LZW, ограниченная цветовая палитра и проблемы с использование старых изображений в новых местах. Конкурирующие с GIF форматы APNG и MNG имеют проблемы с повсеместным распространением их поддержки.

Для решения этих проблем разработан формат XNG, который из коробки уже поддерживается как минимум в Firefox и Chrome, при том, что специально такую поддержку в браузеры никто не добавлял. Достаточно вставить на страницу тег «img src=myanimation.xng» и анимированное изображение будет показано, как и обычный GIF. На первый взгляд в подобной поддержке усматривается подвох. Но если загрузить один из таких файлов и посмотреть его начинку становится всё понятно.

Файл XDG представляет собой HTML-код, сжатый при помощи gzip. При обнаружении gzip, архива браузер автоматически его распаковывает. Внутри содержится интегрированный в HTML SVG-блок, состоящий из изображений в формате JPEG. Данные каждого изображения упакованы «inline» с указанием данных внутри тега image в кодировке base64 (image A:href=»http://redirect.viglink.com?key=11fe087258b6fc0532a5ccfc924805c0&u=data%3Aimage%2Fjpeg%3Bbase64%2C….»). По умолчанию все блоки с изображениями указаны с флагом «visibility=hidden», т.е. не показываются. Отображение кадров производится через набор тегов «set» с установкой межкадровой задержки через атрибут «dur» и поочерёдной смены атрибутов «visible» и «hidden».

Таким образом в XNG по сути является эмуляцией анимированного JPEG и может работать в большинстве браузеров без необходимости установки плагинов или подключения JavaScript-библиотек. Потери из-за использования кодировки base64 хорошо компенсируются благодаря применению сжатия gzip, Потери от base64 составляют в среднем 33%, после сжатия файл уменьшается примерно на 34% за счёт дополнительного сжатия обилия html-тегов (распакованный файл занимает 7536 Кб, а после сжатия gzip — 4986 Кб).


Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Человек ? *