Меню

Html сколько цветов поддерживает формат gif max



Форматы файлов

Широкое распространение для веб-графики получили два формата — GIF и JPEG. Их многофункциональность, универсальность, небольшой объем исходных файлов при достаточном для сайта качестве, сослужили им положительную службу, фактически определив их как стандарт веб-изображений. Есть еще формат PNG, который также поддерживается браузерами при добавлении изображений и существует в двух ипостасях — PNG-8 и PNG-24. Однако популярность PNG сильно уступает признанию форматов GIF и JPEG.

Формат GIF

GIF (Graphics Interchange Format) — формат графических файлов, широко применяемый при создании сайтов. GIF использует 8-битовый цвет и эффективно сжимает сплошные цветные области, при этом сохраняя детали изображения.

Особенности

  • Количество цветов в изображении может быть от 2 до 256, но это могут быть любые цвета из 24-битной палитры.
  • Файл в формате GIF может содержать прозрачные участки. Если используется отличный от белого цвета фон, он будет проглядывать сквозь «дыры» в изображении.
  • Поддерживает покадровую смену изображений, что делает формат популярным для создания баннеров и простой анимации.
  • Использует свободный от потерь метод сжатия

Область применения

Текст, логотипы, иллюстрации с четкими краями, анимированные рисунки, изображения с прозрачными участками, баннеры.

Формат JPEG

JPEG (Joint Photographic Experts Group) — популярный формат графических файлов, широко применяемый при создании сайтов и для хранения изображений. JPEG поддерживает 24-битовый цвет и сохраняет яркость и оттенки цветов в фотографиях неизменными. Данный формат называют сжатием с потерями, поскольку алгоритм JPEG выборочно отвергает данные. Метод сжатия может внести искажения в рисунок, особенно содержащий текст, мелкие детали или четкие края. Формат JPEG не поддерживает прозрачность. Когда вы сохраняете фотографию в этом формате, прозрачные пиксели заполняются определенным цветом.

Особенности

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

Область применения

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

Формат PNG-8

PNG-8 (Portable Network Graphics) — формат по своему действию аналогичен GIF. По заверению разработчиков использует улучшенный формат сжатия данных, но как показывает практика, это не всегда так.

Особенности

  • Использует 8-битную палитру (256 цветов) в изображении, за что и получил в своем названии цифру восемь. При этом можно выбирать, сколько цветов будет сохраняться в файле — от 2 до 256.
  • В отличие от GIF, не отображает анимацию ни в каком виде.

Область применения

Текст, логотипы, иллюстрации с четкими краями.

Формат PNG-24

PNG-24 — формат, аналогичный PNG-8, но использующий 24-битную палитру цвета Подобно формату JPEG, сохраняет яркость и оттенки цветов в фотографиях. Подобно GIF и формату PNG-8, сохраняет детали изображения, как, например, в линейных рисунках, логотипах, или иллюстрациях

Особенности

  • Использует примерно 16,7 млн. цветов в файле, из-за чего этот формат применяется для полноцветных изображений.
  • Поддерживает многоуровневую прозрачность, это позволяет создавать плавный переход от прозрачной области изображения к цветной, так называемый градиент.
  • Из-за того, что используемый алгоритм сжатия сохраняет все цвета и пикселы в изображении неизменными, если сравнивать с другими форматами, то у PNG-24 конечный объем графического файла получается наибольшим.

Область применения

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

Источник

Форматы изображений для веба

29 сентября 2016

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

Растровые форматы

Для начала рассмотрим форматы, которые относятся к растровой графике: GIF, JPEG, PNG и WebP. Подробнее о растровой графике можно прочитать в статье «Растровая и векторная графика».

Основные характеристики, которые нас будут интересовать при выборе формата — это качество изображения, вес и количество цветов. В вебе тяжёлые изображения непрактичны, поскольку они долго загружаются. Чтобы уменьшить вес файла, используются алгоритмы сжатия. Сжатие может быть с потерями и без потерь. При выборе подходящего формата изображения, нам нужно найти баланс между весом файла и качеством картинки, так как некоторые алгоритмы сжимают изображения с потерей качества. Теперь рассмотрим каждый из форматов подробнее.

GIF (Graphics Interchange Format)

Формат был разработан компанией CompuServe в далёком 1987 для передачи растровых изображений по интернету. GIF имеет цветовую палитру, состоящую из 256 цветов. Алгоритм GIF выбирает 256 наиболее используемых в исходном изображении цветов, а все остальные оттенки создаются путём подмешивания — подбора соседних пикселей таким образом, чтобы человеческий глаз воспринимал их как нужный цвет. По этой причине GIF не подходит для хранения полноцветных изображений и фотографий.

Формат поддерживает прозрачность — каждый пиксель изображения может быть в двух состояниях: прозрачный или непрозрачный, полупрозрачность не поддерживается.

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

Пример изображения в формате GIF (источник изображения: giphy.com)

Таким образом, формат GIF подходит если:

  • изображение не многоцветное;
  • нужна простейшая прозрачность;
  • нужна анимация.

JPEG (Joint Photographic Experts Group)

Формат JPEG получил своё название от объединённого комитета экспертов по фотографии, который и создал этот стандарт в конце 80-х — начале 90-х годов. Он был разработан для сжатия и хранения полноцветных фотографий. Поддерживает более 16 миллионов цветов.

Формат JPEG сжимает изображения с потерей качества. Алгоритм сжатия основан на разбиении исходного изображения на квадраты 8×8 пикселей, и последующей их группировке. Можно получать JPEG изображения очень маленького веса, но только за счёт ухудшения качества картинки, можно получить и очень качественные JPEG, но тогда картинка будет слишком тяжёлой. Поэтому главная задача при работе с JPEG — подобрать такой уровень качества, чтобы вес был небольшой и качество картинки было приемлемым (обычно, это диапазон от 60 до 70, но нужно тестировать на каждой картинке).

Пример изображения в формате JPEG с неоптимальной степенью сжатия. Качество: 10. Вес: 20 килобайт.

Первая картинка весит 20 килобайт. Это круто, очень мало, но для этого мы задали уровень качества 10 и картинка выглядит плохо.

Пример изображения в формате JPEG с оптимальной степенью сжатия. Качество: 60. Вес: 65 килобайт.

Вторая картинка с уровнем качества 60 весит чуть больше первой — 65 килобайт, но выглядит уже хорошо.

Пример изображения в формате JPEG с минимальной степенью сжатия. Качество: 95. Вес: 169 килобайт.

Для третьей картинки мы задали уровень качества 95, из-за чего её вес стал 169 килобайт. Вторая и третья картинка внешне почти неразличимы, однако вторая картинка весит на 104 килобайта легче.

Таким образом, формат JPEG лучше подходит для:

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

PNG (Portable Network Graphics)

PNG является относительно недавним форматом, который был введён как альтернатива для GIF-файлов.

Читайте также:  Грязно сиреневый цвет с чем сочетается

PNG является форматом сжатия без потерь и позволяет сохранять изображения, в которых требуется особенная чёткость. Например, чертежи и печатный текст.

Формат имеет две вариации: PNG8 и PNG24. PNG8 может хранить лишь 256 цветов, а PNG24 использует уже более 16 миллионов цветов.

Главная особенность формата PNG — поддержка альфа-прозрачности, то есть каждому пикселю в отдельности можно задать свою степень прозрачности.

Пример изображения в формате PNG (источник изображения: Wikimedia Commons)

Итак, формат PNG подходит для:

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

WebP — новый формат, созданный и развиваемый с 2010 года компанией Google.

Главная цель этого проекта — ещё больше уменьшить вес при сохранении такого же качества.

Формат использует новый алгоритм сжатия, в котором искажения отличаются от искажений других форматов. Ухудшается детализация и структура, в то время как края остаются чёткими.

  • сжимает изображения без потерь лучше, чем PNG (на 26% по данным Google);
  • сжимает изображения с потерями лучше, чем JPEG (на 25–34% по данным Google);
  • поддерживает прозрачность (альфа-канал).

Иногда WebP сжимает изображение даже лучше, чем заявляет Google.

JPEG: 44 килобайт WebP: 26 килобайт. Если изображение не видно, значит ваш браузер не поддерживает формат WebP.

Ввиду относительной новизны формата, не все браузеры умеют с ним работать. На сегодняшний день WebP поддерживается только Chrome, Opera и Firefox.

Векторные форматы

GIF, JPEG, PNG, и WebP — растровые форматы, основанные на дискретном (пиксельном, точечном) представлении изображения, в то время как векторные форматы основаны на математических формулах (геометрическом представлении фигур). Подробнее о векторной графике можно прочитать в статье «Растровая и векторная графика».

SVG (Scalable Vector Graphics)

SVG переводится как — масштабируемая векторная графика. Формат существует с 1999 года.

Размер объектов SVG намного меньше размера растровых изображений, а сами изображения не теряют в качестве при масштабировании. В отличие от растровых форматов мы можем взаимодействовать с изображениями в формате SVG — при помощи CSS можно изменять параметры графики: цвет, прозрачность или границы, а при помощи JavaScript — анимировать изображение.

SVG поддерживается почти всеми браузерами за исключением Internet Explorer 8 и ниже, но и это можно решить подключением JavaScript-библиотек, например, SVGeezy.

Формат SVG отлично подходит для малоцветных схем, логотипов и иконок.

Примеры SVG (источники изображений: Roundicons Freebies www.flaticon.com/authors/roundicons-freebies и HTML Academy)

Источник

Краткое описание формата GIF

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

История GIF

В 1977 году два израильских специалиста по теории информации, Яков Зив и Авраам Лемпель, написали универсальный алгоритм сжатия данных, который получил название LZ (Lempel-Ziv). Позже, в 1984 году, Терри Уэлч, сотрудник фирмы Unisуs (Юнaйсис), изменил этот алгоритм, немного улучшив степень сжатия. Этот метод стал называться LZW (Lempel-Ziv-Welch).

Через семь лет, в 1987 году, фирма CompuServe (Компьюсерв) использовала алгоритм LZW при создании нового формата изображений, предназначенного специально для обмена графикой между компьютерами — GIF (Graphic Interchange Format). С развитием интернета, когда потребность в компактных, быстро передающихся по сети изображениях многократно возросла, формат GIF стал необычайно популярен, и соперничать с ним сейчас может лишь один формат — JPEG (Joint Photographic Expert Group), ориентированный на изображения фотографического качества, в то время как GIF обладает такими недоступными для JPEG свойствами, как прозрачный фон и анимация. В 1989 году CompuServe выпустила расширенную версию формата — GIF89a. В нее и были добавлены эти новые возможности.

В 1995 году фирма Unisуs, владеющая патентом на метод LZW, неожиданно решила, что на нем можно заработать, и запретила распространение программ, использующих сжатие LZW, без лицензии. Теперь, чтобы продавать или даже бесплатно распространять программы, создающие или показывающие изображения GIF, нужно было платить за лицензию по меньшей мере 5000 долларов. Дело доходило до того, что деньги требовали даже с владельцев сайтов, где изображения GIF создавались динамически. Программисты стали искать обходные пути. Появились альтернативные форматы, среди которых самым известным стал PNG («Пинг», Portable Network Graphic). По некоторым параметрам он превосходит GIF, а с появлением анимированной версии (MNG) он стал буквально наступать формату GIF на пятки. И не удивительно, ведь в нем тоже применен один из вариантов метода сжатия Лемпеля-Зива — LZ77.

К счастью, 20 июня 2003 года срок действия основного патента Unisуs на метод LZW в США истек, а патенты в Европе и Канаде были действительны лишь до 7 июля 2004 года, что, возможно, даст формату GIF шанс не потерять завоеванные им за прошлые годы позиции.

Некоторые общие данные

  • Размер картинки — от 1х1 до 65535х65535 пикселов.
  • Число цветов палитры — от 2 до 256.
  • Каждый цвет палитры имеет глубину 24 бита/пиксел (выбор из 16 миллионов цветов).
  • Карта прозрачности — 1-битная (полупрозрачных цветов нет).
  • Число повторов анимации — от 1 до 65535, а также бесконечное.
  • Время показа одного кадра анимации — от 1/100 секунды до 655 секунд.
  • Число кадров анимации — неограниченно.
  • Число невидимых текстовых комментариев и размер каждого комментария — неограниченны.

Структура

Файлы формата GIF имеют блочную структуру. Это значит, что они состоят из отдельных блоков, которые в большинстве случаев никак не связаны друг с другом. Программы, не распознающие некоторые типы блоков, могут просто пропускать их — для этого у каждого нестандартного блока в заголовке указан его размер. Идущие один за другим блоки графики (картинки) составляют анимацию. Они сменяются на экране и создают иллюзию движения. До или после них (или даже между ними) в файле могут находиться другие блоки:

  1. Комментарии. Скрытый текст, его можно увидеть лишь с помощью специальных программ — например, GIF-аниматоров, таких, как Ulead GIF Animator.
  2. Простой текст. Строки символов с ограниченными возможностями форматирования. В настоящее время не используется.
  3. Блоки управления графикой, задающие параметры вывода отдельных картинок.
  4. Глобальная и локальные цветовые палитры, определяющие, какие именно цвета будут у картинок.
  5. Особые блоки, которые могут использоваться лишь теми программами, которые знают об их существовании и назначении — например, блок Netscape, задающий число циклов анимации. Без него анимация после загрузки страницы срабатывает всего один раз. А в блоке Pianygif хранятся названия отдельных картинок для облегчения их редактирования.

Минимально необходимый набор блоков — простейший неанимированный GIF:

Поводите мышкой над блоками для вывода их названий (работает не на всех браузерах)

Дескриптор логического экрана

В начале каждого файла GIF находится заголовок. Поскольку сразу за ним идет дескриптор логического экрана, я считаю заголовок его частью. Он состоит из текста «GIF87a» или «GIF89a», в зависимости от версии.

Дескриптор — это просто «описатель» или «описание». Логический экран — область реального экрана компьютера, куда выводятся все картинки данного файла GIF. Они могут иметь разный размер и занимать разное положение на логическом экране

W, H — ширина и высота логического экрана в пикселах, то есть размер области вывода картинок. Изображения, не умещающиеся на логическом экране, должны обрезаться по его размеру.

BG — номер цвета фона. Если в файле присутствует глобальная палитра, то этим цветом заливаются области фона, где нет картинок. Но если при этом в самом первом, еще до всех картинок, расширении управления графикой включена прозрачность, то этот цвет считается прозрачным.

R — соотношение сторон исходного изображения. В версии GIF87a это поле зарезервировано, и здесь стоят нули. Насколько мне известно, этот параметр никогда и никем не используется. Предполагалось, что пиксел экрана может быть и не квадратным, как было в старых компьютерах и как сейчас бывает при некоторых режимах DOS, и что для вывода таких изображений необходимо изменять разрешение экрана либо растягивать изображение так, чтобы оно выглядело более реалистичным.

CT — наличие глобальной палитры. Если этот флаг установлен, то сразу после дескриптора глобального экрана должна начинаться глобальная палитра. Размер палитры определяется полем Size.

Color — цветовое разрешение исходной картинки. Число битов, приходящееся на каждый из трех основных цветов. Если файл GIF создан напрямую из полноцветного изображения, то Color будет равен 7, а если из уже индексированного, то его значение будет зависеть от глубины цвета этой индексированной картинки, причем весьма приблизительно. Например, если файл создан на основе 16-цветной картинки, то Color должен быть равен 1, и исходная палитра предполагается 64-цветной.

Глубина цвета исходного изображения Color
Число цветов Бит/пиксел Бит/цвет
16777216 24 8 7
2097152 21 7 6
262144 18 6 5
32768 15 5 4
4096 12 4 3
512 9 3 2
64 6 2 1
8 3 1

SF — флаг сортировки палитры. В версии GIF87a этот бит зарезервирован, и здесь стоит ноль. Указывает, сортирована ли палитра по значимости цветов, когда первыми идут наиболее значимые цвета. Значимость цвета определяется тем, какую площадь изображения он занимает по отношению к другим цветам.

Size — размер палитры и число цветов картинки. Если флаг глобальной палитры CT сброшен, то здесь должны стоять нули.

Size Число цветов Размер палитры, байт
7 256 768
6 128 384
5 64 192
4 32 96
3 16 48
2 8 24
1 4 12
2 6

Глобальная палитра

Изображения, хранящиеся в файле GIF, индексированы. Картинки состоят не из полноцветных пикселов, а из номеров цветов, а сами цвета находятся в палитре. Палитра составлена из триад, в свою очередь состоящих из байтов красного ( R), зеленого ( G) и синего ( B) основных цветов. Из всего многообразия цветов (современные компьютеры и мониторы могут показывать на экране до 16 миллионов цветов) используется всего лишь от 2 до 256. Сведение числа цветов к минимуму без значительного ухудшения качества изображения и без потери информации — сродни искусству, и автоматизации поддается плохо. Многие графические редакторы — такие как Adobe Photoshop, например — позволяют интерактивно выбрать наилучший вариант индексации картинки «на глаз».

Если она есть, глобальная палитра идет сразу за дескриптором логического экрана. Наличие палитры определяется флагом CT дескриптора, а размер — полем Size. Глобальная палитра действует на все картинки, у которых нет своей локальной палитры. В том аварийном случае, если в файле нет ни глобальной, ни локальных палитр, программа просмотра может поступать по своему усмотрению — например, использовать системную палитру. Однако рекомендуется, чтобы первые два цвета в ней были черным и белым, чтобы в любом случае на экран вывелось хоть что-то.

Дескриптор изображения

Действует на следующий за ним графический блок (картинку). Без него картинка выводится не будет, так что его можно считать неотъемлемой частью графического блока. Между дескриптором и блоком графики может находиться только локальная палитра.

W, H — ширина и высота картинки в пикселах.

Left, Top — положение картинки на логическом экране.

CT — наличие локальной палитры. Если этот флаг установлен, то сразу после дескриптора изображения должна начинаться локальная палитра. Размер палитры определяется полем Size.

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

SF — флаг сортировки палитры. В версии GIF87a этот бит зарезервирован, и здесь стоит ноль. Указывает, сортирована ли палитра по значимости цветов, когда первыми идут наиболее значимые цвета. Значимость цвета определяется тем, какую площадь изображения он занимает по отношению к другим цветам.

Size — размер локальной палитры и число цветов картинки (см. выше). Если флаг локальной палитры CT сброшен, то здесь должны стоять нули.

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

Если она есть, должна идти сразу за дескриптором изображения Наличие палитры определяется флагом CT дескриптора, а размер — полем Size. Действует она только на следующий сразу за ней графический блок (картинку).

Для уменьшения размера файла лучше ограничиться одной глобальной палитрой, не прибегая к локальным — особенно, если речь идет о многоцветных картинках. Максимальный размер палитры при 256 цветах — 768 байт, а если умножить на число картинок в анимации, то сумма набегает солидная.

Графический блок

Картинка, сжатая по методу LZW. Она разбита на отдельные субблоки по 255 байт. Число картинок в файле, как и размер каждой картинки, ничем не ограниченны. Анимированным GIF становится в том случае, если в нем больше одной картинки. Тогда при просмотре файла в браузере автоматически включается анимация. Про метод сжатия LZW достаточно подробно рассказано на моей страничке Сжатие по методу LZW.

MC — Начальный размер LZW-кода. Равен глубине цвета картинки, за исключением двухцветных, когда MC равен не 1, а 2.

Число цветов Глубина цвета, бит/пиксел MC Размер LZW-кода
256 8 8 9
128 7 7 8
64 6 6 7
32 5 5 6
16 4 4 5
8 3 3 4
4 2 2 3
2 1 2 3

S — размер субблока данных, не включая сам байт S. У всех субблоков, кроме последнего, размер должен быть равен 255 байтам. У последнего субблока (или если он вообще один) размер может быть любым — от 1 до 255 байт.

Расширение управления графикой

Введено в версии GIF89a. Действует на первый же следующий за ним графический блок (картинку). Между ним и блоком графики могут быть вставлены другие блоки (например, комментарий) — это его работе не мешает.

Delay — время задержки, в 1/100 сек. Время, в течение которого данная картинка остается на экране. Минимальное значение — 1/100 секунды, максимальное — примерно 655 секунд. Таймер начинает отсчет лишь после того, как картинка выведена на экран, поэтому у разных программ просмотра время задержки может существенно различаться. Например, если попытаться сделать анимированный GIF — часы, то они могут, в зависимости от браузера, за минуту спешить или отставать более чем на секунду.

Читайте также:  С помощью чего сделать цвет глаз ярче

Tr — номер прозрачного цвета. Если есть локальная палитра, это номер цвета в ней, если же локальной палитры нет, то это номер цвета в глобальной палитре.

Disp — способ замены картинки после показа:

Disp Способ замены Примечание
На усмотрение браузера Обычно результат такой же, как при 1
1 Оставить как есть Наложение следующей картинки поверх данной
2 Восстановить цвет фона Стирание картинки перед выводом следующей
3 Восстановить предыдущую картинку Поддерживается не всеми программами просмотра,
использовать не рекомендуется
4. 7 Зарезервированы

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

TF — флаг прозрачности. Если он установлен, данная картинка выводится с прозрачным фоном, цвет которого определяется параметром Tr.

Расширение простого текста

Введено в версии GIF89a. Предполагалось, что вместе с картинками будут передаваться текстовые сообщения, появляющиеся на экране в паузах между ними или поверх них. Так как символы более 0xF7 не выводятся (заменяются на пробелы), это делает расширение непригодным для вывода символов кириллицы (русских букв). В настоящее время все тексты в файлах GIF идут в виде картинок, так что это расширение, насколько мне известно, никогда и никем не используется.

Left, Top — положение области текста на логическом экране.

W, H — размер области текста. Строки, выходящие за ее рамки, обрезаются. Переводы строки должны быть заранее вставлены в текст.

cW, cH — размер символов. Рекомендуется использовать значения 8х8 или 8х16 пикселов, что в настоящее время годится лишь для DOS.

FG — номер цвета текста.

BG — номер цвета фона. Этим цветом заливаются области фона, где нет текста.

S — размер субблока данных, не включая сам байт S. У всех субблоков, кроме последнего, размер должен быть равен 255 байтам. У последнего субблока (или если он вообще один) размер может быть любым — от 1 до 255 байт.

Расширение комментария

Введено в версии GIF89a. В основном сюда записывают данные об авторских правах создателей файла GIF — и людей, и программ. Самый длинный текст можно ожидать в том случае, если программа бесплатная или условно-бесплатная. Длина текста ничем не ограниченна. В принципе сюда можно записать даже такую мегабайтовую книгу, как «Моби Дик».

S — размер субблока данных, не включая сам байт S. У всех субблоков, кроме последнего, размер должен быть равен 255 байтам. У последнего субблока (или если он вообще один) размер может быть любым — от 1 до 255 байт.

Расширение приложения

Введено в версии GIF89a. Расширения приложения — это специальные блоки данных — не картинки и не текст. С ними могут работать только те программы (приложения), для которых они предназначены. Наибольшую известность приобрело расширение приложения Netscape, описываемое ниже.

ID — идентификатор приложения. Текст из 8 символов, по которому программа просмотра определяет, сможет ли она прочесть данные, и какого они типа.

Code — код проверки идентификатора. Предполагалось, что программа, создавшая GIF, будет синтезировать двоичный код для подтверждения своих прав на данное расширение. На деле здесь тоже находится текст из 3 символов.

S — размер субблока данных, не включая сам байт S. У всех субблоков, кроме последнего, размер должен быть равен 255 байтам. У последнего субблока (или если он вообще один) размер может быть любым — от 1 до 255 байт.

Расширение приложения Netscape

Должно идти сразу за глобальной палитрой (если она есть) или за дескриптом логического экрана (если ее нет). Единственная цель данного расширения — установить число циклов анимации. Как можно догадаться, первым приложением, которое могло использовать эту информацию, был браузер Netscape 2.0. Сейчас это расширение присутствует почти во всех файлах GIF, где есть анимация.

? — здесь стоит 0x01, но что это означает, мне неизвестно. Возможно, первоначально этот байт предполагалось использовать, но затем он оказался ненужным.

Loop — Число циклов анимации, от 0 до 65535. Здесь есть некоторые странности. Во-первых, без расширения Netscape цикл анимации срабатывает, но только один раз. Если же вставить расширение Netscape в файл и установить Loop = 1, то цикл будет прокручиваться дважды, как и при Loop = 2. А при Loop = 0 анимация крутится бесконечно, так что ее отключение, для того, чтобы выводилась только одна первая картинка, в любом случае оказывается невозможным.

Расширение приложения Pianygif

Совершенно случайно я обнаружил еще одно расширение приложения. Судя по его названию, должна быть программа с названием «Pianygif», но я таковой не обнаружил — возможно, она уже давно канула в Лету. Однако польза от этого расширения есть. В нем хранятся названия отдельных графических блоков (или «слоев») картинки, что помогает различать их при редактировании анимации. Так, например, это расширение использует редактор GIF-анимации Ulead GIF Animator, входящий в набор Ulead Web Razor.

Названия хранятся разбитыми на субблоки данных, которые, после объединения и удаления байтов размера представляют из себя одну строку неограниченной длины, где названия отделены друг от друга разделителем 0x01. Последовательность названий соответствует последовательности картинок в файле. Заканчивается строка терминатором 0x0101 или 0x010F. От чего зависит выбор терминатора, определить пока не удалось.

S — размер субблока данных, не включая сам байт S. У всех субблоков, кроме последнего, размер должен быть равен 255 байтам. У последнего субблока (или если он вообще один) размер может быть любым — от 1 до 255 байт.

Заключение

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

Например, применение для создания анимированных кнопок и баннеров вместо картинок GIF техники Flash предполагает, что на каждом браузере установлен плагин Flash или элемент ActiveX Flash нужной версии. Это может в отдельных случаях привести к тому, что пользователи не только не смогут увидеть рекламу, но и вообще не смогут попасть на данный сайт, в то время как поддержка GIF изначально встроена во все браузеры, начиная с самых первых версий.

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

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

Источник