logo search
Вуль В_А_ Электронные издания

3.5.1. Анимационные gif-файлы

Известно, что анимационные файлы в формате GIF, занимают почетное место на Web-страницах. Надо сказать, что в электронных изданиях любого типа анимационные файлы также используются достаточно широко. Это объясняется тем обстоятельством, что GIF-файлы непосредственно воспроизводятся большинством браузеров, причем информационный объем, занимаемый этими файлами, сравнительно невелик.

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

Возможности GIF-анимации связаны с тем, что этот формат позволяет хранить в одном файле несколько различных изображений. Единственный существенный недостаток GIF-файлов связан с применением индексированных цветов, для чего в файле используется глобальная и локальные цветовые палитры. Глобальная цветовая палитра хранит до 256 различных цветовых оттенков, каждый из которых может быть использован в любом из изображений, которое хранится в данном файле. Локальные палитры относятся к каждому отдельному изображению, т. е. хранимые в них цветовые оттенки не могут использоваться в других (не своих) изображениях.

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

Структура файлового формата GIF представлена на рис. 3.5. Файл начинается с общего заголовка и дескриптора логического экрана, причем в последнем хранится ширина и высота каждого изображения в пикселах, индекс цвета фона и значение коэффициента сжатия. Там же задается размер глобальной цветовой таблицы, которая может и отсутствовать. В этом случае обязательно используется для каждого отдельного изображения локальная палитра. В большинстве случаев рекомендуется пользоваться именно глобальной палитрой, что экономит общее информационное пространство, занимаемое файлом.

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

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

Имеется две разновидности формата GIF-файлов: первоначальная версия, названная GIF 87a, и выпущенная двумя годами позднее вторая версия, названная GIF 89а. Вторая версия добавила несколько новых возможностей, в том числе хранение текстовых и графических данных в одном файле. Для этого в описание файла добавлен специальный блок «Управляющие расширения», который размещен сразу после трех общих для всего файла элементов и предшествует описанию отдельных изображений в составе файла. На рис. 3.6. этот блок выделен двумя жирными линиями. В состав управляющих расширений входят: расширение комментариев, расширение приложений и расширение управления графикой. В последнем указана, в частности, и величина задержки кадра в сотых долях секунды, а также значение индекса прозрачности цвета, который позволяет создавать новые анимационные эффекты. Кстати, большинство современных программ-аниматоров обеспечивает подготовку анимационных файлов именно в этом формате (см. глава 5).