RU russian EN  english
Kolobok
GIF - Свойства формата

на 24 September 2008
добавил: Aiwan печатать элемент контента
категория Статьи > Мастерская
 9.8 - 5 голосов -

GIF - Свойства формата

Формат GIF (Graphic Interchange Format) является одним из самых распространенных форматов графических файлов в Сети. Он был разарботан фирмой CompuServe для передачи растровых изображений по сетям. В 1989-м формат был модифицирован в GIF89a, были добавлены поддержка прозрачности и анимации. GIF использует LZW - компрессию, что позволяет неплохо сжимать файлы, в которых много однородных заливок.

GIF использует Lempel-Ziv-Welch (LZW) метод сжатия, чтобы загружать и уменьшать единственные или многочисленные кадры в пределах файла вплоть до 40% их оригинального размера. Эти кадры могут содержать вплоть до 256 цветов, и не терять свое оригинальное качество в течение сжатия. Хотя GIF - формат свободный от потерь, преобразование импортируемых образов в формат GIF может потерять некоторое их качество на переходе из True Color в 256- цвет.

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

Метод сжатия LZW (Lempel-Ziv-Welch) разработан в 1978 году израильтянами Лемпелом и Зивом и доработан позднее в США. Сжимает данные путем поиска одинаковых последовательностей (они называются фразы) во всем файле. Выявленные последовательности сохраняются в таблице, им присваиваются более короткие маркеры (ключи). Так, если в изображении имеются наборы из розового, оранжевого и зеленого пикселей, повторяющиеся 50 раз, LZW выявляет это, присваивает данному набору отдельное число (например, 7) и затем сохраняет эти данные 50 раз в виде числа 7. Метод LZW, так же, как и RLE, лучше действует на участках однородных, свободных от шума цветов, он действует гораздо лучше, чем RLE, при сжатии произвольных графических данных, но процесс кодирования и распаковки происходит медленнее.

Цвета, которые используются в GIF-изображении, хранятся внутри самого файла в специальной таблице цветов, называемой индексированной палитрой. Файлы GIF могут также содержать различные оттенки серого цвета. Существуют две основные версии формата GIF: GIF87 и GIF89a (они названы так по году стандартизации). Обе версии поддерживают способ представления графического файла с чередованием строк. Более поздний вариант GIF89а допускает задание одного цвета в качестве прозрачного Alpha-канала. Изображения в формате GIF87 можно использовать в Сети наравне с изображениями в формате GIF89a. Их только нельзя сделать прозрачными.

Прозрачность (Alpha-канал) подразумевает, что один цвет изображения (обычно это цвет фона) может быть объявлен прозрачным. Это ведет к тому, что вместо фона изображения виден просвечивающий сквозь него фон самой web-страницы. Благодаря этому изображение на странице выглядит более естественным.

смайлики
Чередование строк означает, что во время приема изображения из Интернета его детали прорисовываются постепенно. Файл в формате GIF может проявляться не после получения всего изображения, а постепенного (Interlacing), что дает возможность получать общее представление об изображении по мере его поступления. Это достигается за счет записи, а затем загрузки, сначала 1, 5, 10 и т.д. строчек пикселей и растягивания данных между ними, вторым проходом следуют 2, 6, 11 строчки, разрешение изображения в интернетовском браузере увеличивается. Чересстрочная запись незначительно увеличивает размер файла, но это, как правило, оправдывается приобретаемым свойством.

Так же, одним из ключевых свойств формата является возможность изменения порядка вывода на экран строк изображения, с заполнением промежутков между ними временной информацией, хранения в одном файле боле, чем одного изображения, что делает возможной элементарную кадровую анимацию. Выглядит это следующим образом, например рисунок изображающий два разных вида, но чередующийся каждые 5 секунд, может содержать всего 2 кадра. В то время как в анимационном кино, ему потребовалось бы по 120 кадров на каждые 5 секунд (24 кадра в секунду).

Не все так просто в выводе изображений в виде анимации. Если бы GIF был простым слайдом, он бы не стал так популярен и “непотопляем” на просторах Сети. Рассмотрим основные способы компоновки кадров или точнее фреймов.

смайлики
  • Smart - автоматически выбор один из двух методов (Do Not Remove or To Background) в зависимости от фреймов. Новичкам, я рекомендую именно этот метод.

  • Do Not Remove - фрейм не удален, и любые последующие кадры отображены над этим.

  • To Background Removes – удаляется кадр, и заменяется страничным фоном. Если фреймы перекрываются равномерно, тогда происходит плавный эффект перехода. Этот метод делает рисунок большим объемом, так как все кадры отображают все, что они содержат. Если ваша работа будет использоваться не только в браузерах, а например, в программах использующих GIF, то рекомендую этот способ отображения.

  • To Previous State - удаляет текущий фрейм и заменяет его фреймом, предшествующим ему. Если все фреймы в последовательности выбраны, но плавный переход от одного фрейма к другому происходит независимо от их наложения (этот способ не поддерживается некоторыми браузерами).

  • Web Browser Decides - Web Browser проигрывает анимацию удаляя фрейм. Как это делается? Варьируется от браузера к браузеру и очень не рекомендуется.


Используя тайминги для отображения ваших фреймов, следует учитывать, что некоторые браузеры некорректно работают с величинами меньше 0.1 секунды. В частности, Internet Explorer 6.0 все величины меньше десятой доли секунды проигрывает за 0.1 секунды. Лучше всего смотреть ваш файл в нескольких браузерах на разных движках в процессе работы, что позволит избежать досадных недоразумений после компиляции рисунка.

Есть два вида палитр для анимированного GIFa. Global Palettes (глобальная палитра) которая, определяет использование цветов в каждом изображении анимации и Local Palette (локальная палитра), которая уникальна для каждого фрейма в файле. Глобальная палитра удобна для уменьшения общего размера файла, когда цвета, используемые каждым фреймом, все, фактически, одно и тоже. Когда цвета сильно изменяются от фрейма к фрейму, то локальная палитра может использоваться, чтобы сохранить полное качество изображения. Но это увеличивает размер файла.

смайлики
Обеими (Global Palettes и Local Palettes) палитрами можно управлять, определяя их параметры в настройках. Например, число цветов, используемые в каталоге, как эти цвета должны быть отобраны, или должны ли быть цвета смешаны, чтобы получить различные цветовые оттенки.

Формат GIF, не смотря на свой возраст, все еще остается одним из основных форматов графических файлов в Интернете. Для того, что бы использовать его максимально эффективно, необходимо знать досконально его свойства. Я сам столкнулся со многими проблемами, не зная свойств GIF-а. Описывать все тонкости работы с форматом лучше всего на конкретном примере, об этом мы и поговорим в следующий раз.


При написании статьи использовались материалы:
Alexey Kletsel Design, www.kletsel.com

Комментарии

Rohan   15.09.09 - 20:45
Комментарии: 1

что это за программа:  

Aiwan   16.09.09 - 11:05

Комментарии: 443

Это Ulead GIF Animator 5.05. Самая лучшая программа для работы с гифами. Лучшая по соотношению возможности/качество/цена/. Остальные нервно курят в сторонке.  

Dan4ikkk   14.04.10 - 15:03
Комментарии: 1

Я никак не могу сделать анимацию создаю новый фал рисую нажимаю в фотошопе window>animation создаю анимацию сохраняю файл и когда ссмотрю его он не движется хотя в фотошопе всё норм
  

Aiwan   14.04.10 - 17:11

Комментарии: 443

В фотошопе не рисую, поэтому не подскажу   

mixzzz   28.01.13 - 01:51
Комментарии: 1

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

Aiwan   28.01.13 - 05:10

Комментарии: 443

Выберите способ компоновки фреймов Smart или To Background Removes. Последний точно исправит ошибку и не забудьте выставить время таймингов у каждого фрейма.  

mamatato   20.08.16 - 22:12
Комментарии: 1

Блин, это ж сколько уже времени то прошло.
  


Поместить комментарий

Имя пользователя:
Комментарий:



[ Новости | Архив | Файлы | Статьи | Ссылки | Связь с нами | Карта Cайта | О проекте ]
Kolobok
Время генерации: 0.0920 сек., 0.0043 из них заняли запросы. Запросов: 26.