Спрайтовая анимация реализуется при помощи какого-либо языка программирования или специального инструментального средства. В спрайтовой анимации отсутствует понятие кадра (эту технологию применяют во многих «двумерных» компьютерных играх).
Особенно подробно остановимся на специальной технологии 2D-анимации, основанной на записи серии управляющих и графических кодов в файлы формата GIF и последующем воспроизведении ряда изображений с запрограммированными временными интервалами.
5. Графический формат GIF.
5.1 Общие сведения.
Graphics Interchange Format (GIF) компьютерной информационной службы CompuServe – один из наиболее широко используемых форматов графических файлов. Сейчас он используется почти на всех платформах и является стандартным форматом изображений в Word Wide Web.
GIF поддерживает разрешения до 65536×65536 и значения глубины цвета от 1 до 8 битов на пиксель (максимум 256 цветов). Данный формат использует алгоритм сжатия Lempel-Ziv-Welch (LZW), требующий менее 16 Кб для хранения кода сжатия и распаковки. Следует отметить, что алгоритм LZW, позволяющий уменьшать объем данных до 40% от исходного, во многом напоминает алгоритмы, применяемые в программах архивации данных. В результате этого попытки дополнительного сжатия GIF-файлов ни к чему не приводят.
Графические данные в формате GIF могут храниться в двух видах. В первом варианте строки данных хранятся последовательно, сверху вниз. Другой способ, называемый чередующимся (interlaced), предполагает запись каждой восьмой строки, затем каждой четвертой и т.д. При выводе на экран чередующихся изображений имеется возможность оценить результат уже по 1/8 доступных данных. Это особенно удобно, когда изображение выводится на экран по мере поступления данных, как в случае просмотра WWW-страниц.
Содержимое файла GIF с несколькими изображениями можно просматривать
либо в виде последовательности слайдов, либо в виде набора изображений, комбинация которых образует единую картинку.
В настоящее время можно встретиться с двумя разновидностями формата GIF. Первая официальная версия GIF, документация на которую вышла в 1987 году, называется GIF87a. Новая усовершенствованная версия формата получила GIF89a. Дополнительные возможности второй версии позволяют включать в GIF-файл текст (подписи и комментарии), накладывать в пределах одного файла изображения друг на друга, устанавливать прозрачный цвет и помещать в файл дополнительную информацию для приложений. Если эти возможности реально не задействовать, то большинство программ будут создавать файл версии GIF87a. В результате даже те программы, которые распознают только первую версию формата, нормально работают большинством изображений, полученных из Internet.
Файл GIF состоит из заголовка и серии блоков.
5.2 Заголовок GIF-файла.
Заголовок хранит основную информацию об изображении, в том числе о таблице цветов, использованных для всех изображений файла. Структура заголовка GIF приведена в таблице 1. Он состоит из сигнатуры, дескриптора логического экрана и описания глобальной палитры.
Размер в байтах
Биты
Описание
3
GIF
Версия (87a или 89a)
2
Ширина экрана
Высота экрана
1
Информация об экране и цветах
0-2
Размер глобальной палитры
1, если выборочная палитра
4-6
Разрешение цвета (число битов минус 1)
7
1, если глобальная палитра
Цвет фона
Отношение масштабов по вертикали и горизонтали
3×N
Глобальная палитра
Таблица 1. Заголовок GIF-файла
Сигнатура используется для идентификации типа файла и занимает 6 байт.
Дескриптор логического экрана описывает предполагаемый вид экрана и включает информацию о пропорциях и максимальном разрешении хранимых изображений. Каждое изображение, содержащееся в файле, будет воспроизводиться на экране с заданными дескриптором параметрами.
Описание глобальной палитры содержит информацию о глубине цвета, цвете фона и заданной по умолчанию цветовой палитре.
5.3 Блоки GIF-файла.
За заголовком следуют блоки. Каждый блок начинается с одного или двух байтов, идентифицирующих его тип. Типы блоков, поддерживаемых форматом GIF, приведены в таблице 2.
Идентификатор
блока
(1-й байт)
Дополнительный
идентификатор
(2-й байт)
Имя блока
расширения
0×2C
---
Изображение
0×3B
Конец файла
(терминатор GIF)
0×21
0×01
Блок расширения
Блок текста
0×F9
Блок управления
графикой
0×FE
Блок комментариев
0×FF
Блок поддержки
приложений
Таблица 2. Типы блоков GIF-файла.
Блок изображения, структура которого приведена в таблице 3,
содержит три раздела. В первом находится описание изображения и способа его хранения в файле. Второй раздел (необязательный) содержит описание цветовой палитры, использованной только для этого изображения. В третьем разделе находятся данные собственно изображения.
Размеры в битах
Координата X изображения на экране
Координата Y изображения на экране
Ширина изображения
Высота изображения
Информация об изображении
0
1, если используется локальная палитра
1, если используется способ хранения interlaced
1, если хранится палитра
3-4
Зарезервированы (всегда 0)
5-7
Размер локальной палитры
Локальная палитра (необязательно)
Подблоки, содержащие сжатые данные изображения
Страницы: 1, 2, 3, 4