Какие есть альтернативы для анимированных GIF-файлов? - PullRequest
50 голосов
/ 19 июня 2011

Почему эти противные GIF-ы все еще доминируют, когда дело доходит до анимированных изображений? Я уверен, что в настоящее время есть лучшие альтернативы, но почему ни один из них не набирает обороты?

Ответы [ 9 ]

36 голосов
/ 19 июня 2011

Анимированные PNG или APNG (http://en.wikipedia.org/wiki/APNG). Они могут быть сделаны в GIMP с помощью APNG Plug-in Но анимированные Gif действительно являются главными - флеш вроде как взял верх, но на самом деле это не само изображение.

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

Формат файла GIF имеет лучшую поддержку приложений и браузера, чем APNG, но он ограничен 256 цветами на кадр и поддерживает альфа-прозрачность только 1 бит, отображая один из цветов палитры в прозрачный.

SVG в сочетании со сценариями или SMIL может анимировать векторную графику и может включать растровую графику. (См. Анимацию SVG.)

Динамическая графика, созданная с помощью HTML 5. Объект также можно анимировать.

Альтернативным методом для анимации на веб-страницах является использование обычных статических изображений и их анимация с использованием JavaScript, [22] Adobe Flash, Microsoft Silverlight, Java или других технологий на основе плагинов.

13 голосов
/ 23 июля 2014

WebP - это формат изображения, использующий сжатие с потерями и без потерь.В настоящее время он разработан Google.

Преимущества анимированного WebP по сравнению с анимированным GIF

  • WebP поддерживает 24-битный цвет RGB с 8-битовый альфа-канал, по сравнению с 8-битным цветом GIF и альфа-битом в 1 бит.

  • WebP поддерживает сжатие с потерями и без потерь;фактически, одна анимация может комбинировать кадры с потерями и без потерь.GIF поддерживает только сжатие без потерь.Методы сжатия с потерями в WebP хорошо подходят для анимированных изображений, созданных из реальных видео, все более популярного источника анимированных изображений.

  • WebP требует меньше байтов, чем GIF1.Анимированные GIF, конвертированные в WebP с потерями, на 64% меньше, а WebP без потерь на 19%.Это особенно важно в мобильных сетях.

  • WebP занимает меньше времени для декодирования при наличии поиска.В Blink прокрутка или изменение вкладок могут скрывать и отображать изображения, в результате чего анимация приостанавливается, а затем пропускается вперед в другую точку.Чрезмерное использование ЦП, приводящее к отбрасыванию кадров анимации, также может потребовать от декодера поиска вперед в анимации.В этих сценариях анимированный WebP занимает в 0,57 раза больше общего времени декодирования2, чем GIF, что приводит к уменьшению задержки при прокрутке и более быстрому восстановлению после всплесков загрузки ЦП.

Недостатки анимированного WebP по сравнению с анимированным GIF

  • При отсутствии поиска прямолинейное декодирование WebPболее загружает процессор, чем GIF.Lossy WebP занимает в 2,2 раза больше времени декодирования, чем GIF, а без потерь WebP - в 1,5 раза.

  • Поддержка WebP не так широко распространена, как поддержка GIF, что по сути универсально.

  • Добавление поддержки WebP в браузеры увеличивает площадь кода и площадь атаки.В Blink это примерно 1500 дополнительных строк кода (включая библиотеку демпинга WebP и декодер изображений на стороне Blink).Обратите внимание, что эта проблема может быть уменьшена в будущем, если WebP и WebM совместно используют более распространенный код декодирования или если возможности WebP включены в WebM.

https://developers.google.com/speed/webp

5 голосов
/ 19 мая 2015

Я хотел бы предложить использовать видео для анимированных картинок.В HTML5 теперь есть широкая поддержка тега video и почти равная поддержка MPEG4 .

<video autoplay loop src="sample.mp4">

С атрибутами autoplay и loop легкоповторить поведение анимированного GIF.

Я признаю, что прозрачность в видео все еще остается проблемой.

1 голос
/ 18 января 2016

С помощью jquery я могу вращать 6 jpgs лентикулярной последовательности взад и вперед, чтобы добиться того же результата анимационного gif; например, http://www.vicgi.com. Общий размер файла для 6 изображений составляет всего 233 КБ. Если бы это был анимированный GIF, было бы 11 кадров, и файл мог бы быть больше 1 МБ. Не говоря уже о том, что количество цветов ограничено 256 для GIF.

HTML

<!-- Reserve a div for showing the images with id=banner -->
<div class="row">
    <img id="banner" src="images/first_image.jpg" class="img-responsive">
</div>

Javascript : Добавьте этот код перед тегом конца тела, предположим, что вы связались с jquery cdn или загрузкой.

var images = [
"first_image.jpg",
"second_image.jpg",
"third_image.jpg",
"forth_image.jpg",
"fifth_image.jpg",
"sixth_image.jpg",
"fifth_image.jpg",
"forth_image.jpg",
"third_image.jpg",
"second_image.jpg",
];   // add the images if necessary

numImages = images.length,
index = 1;  // start from the second image because first image is already in the HTML

function cycleImages() {
    image = "images/" + images[index];   // assume all the images are store in the images sub-directory
    $("#banner").attr("src", image);     // set the src attribute of the <img tag to the image to be shown
    index++;                             // advanced to the next image
    if (index == numImages) index = 0;   // recycle to the first image
}

$(function() {                          // start the rotation when document is ready
    setInterval("cycleImages()", 800)
});
1 голос
/ 09 сентября 2014

Как ответили Натан и другие ранее, есть много способов оживить графику.

Лично я предпочитаю

(1) создавать графику в Illustrator или Inkscape и т. Д.

(2) сохранять графику в формате .SVG

(3) внедрите код SVG (т. Е. Все между и) в вашу веб-страницу и

(4) используйте snap.svg (javascript libary) для анимации встроенной графики SVG.Самый современный браузер поддерживает SVG

1 голос
/ 19 июня 2011

Я использовал плагин jquery для анимации серии PNG.См. http://blog.shynet.nl/post/2010/08/28/Alternative-to-animated-GIFs-AnimateImages-jQuery-Plugin.aspx

Я не уверен в производительности плагина с большим набором изображений.Я использовал его только для мерцания иконок

0 голосов
/ 22 сентября 2015

Мое предложение: посмотрите, что комитет HTML решит по этому вопросу. До этого GIF работает для изображений низкого качества, а видео-тег HTML5 поможет вам на веб-страницах. Во всяком случае, нативные вещи (не веб) всегда следовали за интернетом в медиаформатах.

0 голосов
/ 19 мая 2015

Очевидно, это было довольно давно, но времена меняются, и .webm кажется хорошим соперником.

Короче говоря, это медиа-формат, который должен быть бесплатным. Он будет использоваться с тегом видео HTML5 (см. Ответ от @KeithShaw) и потребует браузера, который поддерживает соответствующий кодек. Тем не менее, YouTube является одним из пользователей, а также ряд других отраслей, о которых я не буду здесь упоминать.

Это сайт проекта: WebM Project

0 голосов
/ 19 июня 2011

Формат MNG - это PNG-подобный формат для анимации, но, похоже, он не приобрел особой популярности.Так что это просто вопрос усыновления - поскольку анимированные GIF-файлы работают нормально (и не имеют прежних патентных ограничений), почему бы не использовать их?Зачем ремонтировать то, что не сломалось?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...