Автор Уварова Елена.

Раздел4.
Другие разделы:

| 1. Формат GIF. Применение и возможности
| 2. Стандарты GIF87a и GIF89a. Особенности и характеристики
| 3. Структура анимированного файла GIF89a
| 5. Оптимизация анимированных GIF-файлов

Формирование анимированных GIF-изображений основано на одном из старейших принципов анимации - быстрой смене картин, слегка отличающихся друг от друга. Как правило, все анимированные GIF-файлы содержат ряд отдельных кадров, при последовательном просмотре которых создается иллюзия движения. Сегодня анимированные gif-изображения являются одним из самых популярных способов добавления простой анимации в Web-страницы, т.к. практически любой браузер поддерживает работу с ним. Но следует помнить о том, что у некоторых пользователей браузеры не поддерживают анимированные GIF, и они показывают лишь начальный элемент графической цепочки.
Процесс создания анимации на базе GIF-файлов состоит из трех этапов:
- подготовка отдельных кадров (при помощи оцифровки или рисования);
- сбор отдельных кадров в единый файл;
- задание параметров цикла выдачи, временных задержек между кадрами и другой информации.

Подготовка кадров
Базовые кадры формируются в любом графическом редакторе и сохраняются на диске в формате GIF. Кадры изготавливают приблизительно по такому же принципу, по которому создается обычная мультипликация.
Рассмотрим последовательно все шаги создания GIF-анимации на 2-ух характерных примерах.
Картинка 1 - лошадь, которая открывает и закрывает глаза.
Картинка 2 - прыгающий мячик.
В первом случае нам потребуется 3 исходных кадра: лошадь с открытыми, с полузакрытыми и с закрытыми глазами.

В данном случае все 3 кадра отличаются между собой, и GIF-файл построен по принципу классической анимации.
Во втором случае потребуется два исходных кадра: мячик и фон (рамка).

В данном случае мячик будет передвигаться в пределах фона.
В обоих вариантах рекомендуется заранее нарисовать соответствующий Вашей задумке шаблон - файл, содержащий изображение фиксированного размера с уже нанесенным на него неподвижным фоном, однотонным или текстурным, поверх которого будут перемещаться движущиеся объекты.

Объединение кадров
В анимированных GIF-файлах кадры выводятся в строгой последовательности, которую нельзя изменить во время воспроизведения.
Анимация собирается из готовых кадров в любой предназначенной для этого специализированной программе. Процесс создания прост - вы берете по очереди кадры и добавляете их к своему GIF-файлу. Затем для каждого кадра и всей анимации в целом, задаете параметры. Для каждого кадра следует задать задержку, если надо, то локальную палитру, положение на логическом экране и способ удаления.

Параметры для каждого кадра

- Задержка между кадрами.

> Формат GIF 89A позволяет определять задержку между отдельными кадрами (указывается с шагом в 0,01 с (1 мс)), что дает возможность управлять темпом анимации. Задержка - это промежуток времени, в течение которого кадр будет оставаться на экране. Без учета эстетических соображений во многих случаях оказывается, что замедление анимации (или ее ускорение) позволяет снизить общее число кадров в файле. Но следует помнить, что в некоторых версиях браузеров кадры не проигрываются быстрее, чем с задержкой в 34/100 секунды.

- Положение на логическом экране.

> Для каждого кадра можно задать смещение вниз и влево относительно начала координат логического экрана. Это свойство во многих случаях очень существенно влияет на оптимизацию размера файла.

- Способ удаления текущего кадра с экрана.

> Существует 4 способа удаления текущего кадра, предусмотренные форматом GIF.
> - Не определено. Способ удаления не определен. В большинстве случаев аналогичен способу "не удалять".
> - Не удалять. Кадр должен остаться на месте. Это значит, что следующий кадр будет отображен поверх текущего изображения. Такой способ удаления неприемлем для прозрачных анимаций.
> - Цвет фона. Восстановление цвета фона. Область, закрываемая кадром, будет заполнена цветом фона. Но если хотя бы один кадр прозрачный, то кадр будет замещен фоновым изображением (фоновым изображением считается первое изображение в цепочке кадров).
> - Предыдущее состояние. Восстановление предыдущего изображения. Область, охватываемая кадром, замещается предыдущим изображением.
> В подавляющем большинстве случаев первые два способа означают, что кадры не будут исчезать с экрана, и будут отображаться поверх предыдущих кадров, а два последние способа - что предыдущие кадры будут удаляться и на экране отображается только текущий кадр.

- Локальная палитра.

> Для каждого кадра можно задать локальную палитру. Но следует помнить, что желательно не использовать локальных палитр - такие картинки читаются, но в некоторых случаях это приводит к неправильному изображению цветов. К тому же использование локальных палитр увеличивает размер файла.

- Прозрачность.

> Задание для кадра прозрачный цвет из текущей палитры. Прозрачным может быть только один цвет.

Параметры для всей анимации

- Количество повторов всего ряда кадров.

> Повтор последовательности изображений может быть бесконечным или заданное количество раз. В большинстве случаев используют бесконечное повторение анимационного цикла.

- Ширина и высота логического экрана.

> В GIF-файле можно явно задать ширину и высоту экрана или использовать автоматическое определение размеров экрана. В последнем случае все кадры будут умещаться на экране. Но следует помнить, что если картинка не умещается на логическом экране, это может привести даже к аварийному завершению работы браузера, в лучшем случае - последствия непредсказуемы.

- Глобальная палитра для всех кадров.

> Рекомендуется использование глобальной палитры для всей анимации в целом.

Теперь рассмотрим некоторые существенные теоретические положения на примерах и попробуем поэкспериментировать с нашими заготовками.

Кивающая лошадка.
Для того, чтобы лошадь закрывала и открывала глаза, надо расположить кадры в последовательности 1, 2, 3, 2, т.е. кадр с открытыми глазами, кадр с полузакрытыми, кадр с закрытыми, опять кадр с полузакрытыми, кадр с открытыми и т.д.
Если картинку делать непрозрачной, то способ удаления может быть любой. Если картинка прозрачная, то способ удаления имеет принципиальное значение. В первом случае способ удаления для каждого кадра "Не удалять", во втором - "Предыдущее состояние". Во всех случаях между кадрами одинаковое время задержки между кадрами и равно 100 мс.

Непрозрачный фон. | Прозрачный фон. "Не удалять".
Прозрачный фон. "Предыдущее состояние".

Если задать время задержки первого кадра, например, 300 мс, то лошадка будет более бодрая, а если такую задержку задать для 3-го кадра, то лошадка, наоборот, более сонная.

Бодрая лошадь. | Сонная лошадь.

Варьируя время задержки между кадрами Вы можете добиваться определенных психологических и эстетических эффектов.

Прыгающий мячик.
Рассмотрим пример с мячиком, более характерный пример, т.к. большая часть анимации в Internet построена на движении какого-либо объекта.
Пусть мячик отскакивает от стенок рамки, в пределах которой он находится. В данном случае у нас есть 2 исходных файла: фоновая рамка и мячик. При формировании цепочки анимации первым кадром будет рамка, а следующими: мячик. Но при формировании 2-го и следующих кадров мы будем использовать важное свойство кадров - смещение вниз и вправо. При подготовке GIF-файла такого типа следует обратить внимание на то, чтобы подвижный элемент смещался в каждом кадре на равное расстояние и именно в том направлении, в котором необходимо. Если, например, мячик должен перемещаться строго по прямой линии, но в одном из кадров Вы разместите его чуть выше или ниже первоначального положения, траектория его движения получится ломаной, что очень портит впечатление.
Сформируем GIF-файл из 10 кадров, со временем задержки 50 мс. Все кадры, кроме первого, сделаем прозрачными. Причем для первого кадра зададим способ удаления "не удалять", а все остальные сделаем прозрачные, способ удаления "предыдущее состояние", и смещения для каждого из кадров: 1-(0,0); 2 -(23. 23) и т.д.

| Рис.1 Мячик отскакивает на фоне по стенкам. Способ удаления "Предыдущее состояние".
Если кадры с тем же самым смещением расположить в другой последовательности, то мячик уже будет беспорядочно появляться в разных местах.
| Рис.2 Мячик появляется в произвольных местах.
Если для рассмотренных выше двух вариантов кадры не удалять, то получается другой эффект.
| Рис.3 Мячик двигается по траектории со шлейфом.
| Рис.4 Мячики появляются и не исчезают.
Во многих случаях фон не требуется, поэтому аналогичных эффектов можно добиться, не используя фон, т.е. без первого кадра. Для всех кадров способ удаления одинаков.

В результате наших экспериментов мы на основе всего 2-ух файлов с минимальными изменениями добились 8-разных картинок.

Image Tools Group 2004г.

На главную / Предыдущий раздел / Следующий раздел / Вверх