Перейти к основному содержимому

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

Что такое GIF? 256 цветов, анимация и сжатие LZW

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

Автор: Hemen Dönüştür Editör EkibiОпубликовано: 7 мин чтения

Обложка руководства по формату GIF

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

Краткая история

GIF разработала компания CompuServe, один из крупных онлайн-сервисов того времени. По данным реестра PRONOM Национального архива Великобритании, первая версия, GIF87a, вышла 15 июня 1987 года. Следующая версия, GIF89a, получила название по 1989 году; текст спецификации, который приводит PRONOM и который размещен на сайте W3C, датирован 31 июля 1990 года. В версии 89a появилось расширение Graphic Control Extension, задающее задержку кадра, прозрачность и способ удаления кадра, а также расширения для комментариев, простого текста и приложений. На этих расширениях построены современные анимированные GIF.

Самая известная глава в истории GIF связана с патентным спором. GIF сжимается алгоритмом LZW, на который у компании Unisys был патент. Согласно описанию формата в Библиотеке Конгресса США, GIF получил печальную известность в 1994 году, когда Unisys начала взимать плату за лицензию на LZW. Это привело к созданию PNG как свободной от патентов альтернативы. По данным того же источника, американский патент Unisys истек в июне 2003 года, а европейские и японские патенты в июне 2004 года, поэтому сегодня для использования GIF лицензия не нужна.

Как работает GIF

Палитра и ограничение в 256 цветов

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

Сжатие LZW

Индексы пикселей сжимаются без потерь алгоритмом LZW, который использует коды переменной длины; спецификация допускает рост кодов до 12 бит. LZW добавляет повторяющиеся последовательности пикселей в словарь, поэтому он хорошо справляется с большими однотонными областями и плохо с зашумленными фотографиями.

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

В GIF89a расширение Graphic Control Extension может пометить один цвет палитры как «прозрачный». Это прозрачность по принципу «да или нет» (бинарная): пиксель либо полностью виден, либо полностью прозрачен. Поэтому полупрозрачные тени и мягкие края в GIF выглядят зубчатыми, а светлый «ореол» вокруг краев на цветном фоне встречается так часто.

Анимация

Анимированный GIF представляет собой последовательность кадров в одном файле. Расширение Graphic Control Extension каждого кадра задает, сколько он остается на экране (в сотых долях секунды) и как очищается его область перед следующим кадром. Информация о зацикливании хранится в расширении приложения. Необязательная чересстрочная развертка позволяет изображению проявляться постепенно во время загрузки.

Способы удаления кадров

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

Насколько широко используется GIF?

По данным W3Techs за октябрь 2026 года, GIF используется на 13,2% отслеживаемых сайтов. Согласно HTTP Archive Web Almanac 2024, 16,8% изображений на мобильных страницах имеют формат GIF; по данным отчета, 32% из этих GIF анимированы. В отчете также отмечается, что около 6% всех запросов изображений приходится на картинки размером 1x1 пиксель, скорее всего на счетчики отслеживания и GIF-распорки, так что высокая доля GIF объясняется не только анимациями.

По эффективности GIF сильно отстает. В том же отчете медианный GIF занимает 6,7 бита на пиксель, против 3,8 у PNG, 2,0 у JPEG и 1,3 у WebP. Для анимированных GIF медиана поднимается до 32,6 бита, а у неанимированных GIF остается на уровне 3,5 бита.

Чем можно заменить GIF?

Руководство MDN по форматам изображений считает GIF хорошим выбором для простых изображений и анимаций, но для неподвижных изображений без потерь и с палитрой предлагает PNG, а для анимационных последовательностей WebP, AVIF или APNG. Для длинных анимаций или анимаций из реальной съемки видео гораздо эффективнее: в примере на web.dev GIF размером 3,7 МБ уменьшается до 551 КБ в MP4 и до 341 КБ в WebM.

ЗадачаРекомендация
Неподвижный логотип, иконка, графика с однотонными цветамиPNG или SVG
Короткая анимация с небольшим числом цветов (например, индикатор загрузки)GIF, APNG или анимированный WebP
Анимация из видеосъемки или записи экранаБеззвучное зацикленное видео MP4 или WebM
Анимация, которая должна воспроизводиться везде (электронная почта, мессенджеры)GIF; по-прежнему формат с самой широкой совместимостью

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

Частые проблемы

GIF слишком большой

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

Цвета выглядят полосатыми или зернистыми

Это естественное следствие ограничения в 256 цветов. Сильнее всего страдают плавные градиенты, например небо или оттенки кожи. Для содержимого, похожего на фотографию, используйте вместо GIF формат JPG, WebP или видео.

Вокруг краев белый ореол

Поскольку прозрачные GIF не могут быть полупрозрачными, изображение, подготовленное на светлом фоне, при размещении на темном показывает промежуточные оттенки краев. Для прозрачных изображений с мягкими краями используйте PNG или WebP.

После конвертации анимация остановилась

PNG и JPG не поддерживают анимацию, поэтому при конвертации анимированного GIF в любой из них сохраняется только один кадр.

Советы по работе с GIF

  • Чтобы получить неподвижное изображение, конвертируйте GIF в PNG. Первый кадр GIF сохраняется как PNG без потерь вместе с прозрачностью.
  • Чтобы уменьшить размеры анимированного GIF, используйте инструмент изменения размера изображения. При изменении размера анимированные GIF сохраняют все кадры и время их показа (до 600 кадров).
  • Чтобы обрезать анимацию, инструмент обрезки изображения применяет одинаковую обрезку ко всем кадрам и сохраняет их тайминги.
  • Чтобы уменьшить размер файла, инструмент сжатия изображений оставляет анимированные GIF в формате GIF со всеми кадрами, а неподвижные GIF по умолчанию конвертирует в WebP, чтобы сделать их меньше.
  • Чтобы превратить другое изображение в GIF, выберите GIF в качестве целевого формата в конвертере изображений. Результатом будет один кадр не более чем с 256 цветами, а полупрозрачные области сводятся к прозрачности по принципу «да или нет».
  • Все это выполняется в вашем браузере, поэтому ваши файлы никогда не покидают устройство.

Часто задаваемые вопросы

GIF сжимает с потерями?

Сжатие LZW работает без потерь. Но чтобы конвертировать полноцветное изображение в GIF, его нужно сократить до 256 цветов, и потери возникают именно на этом шаге уменьшения числа цветов.

Есть ли разница между GIF и анимированным GIF?

Формат один и тот же. GIF с одним кадром неподвижен, а GIF с несколькими кадрами анимирован. Задержки кадров и информация о зацикливании хранятся в расширениях внутри файла.

Почему GIF все еще используют?

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

Есть ли смысл конвертировать GIF в MP4?

Если вы показываете его на своем сайте, обычно да. В примере web.dev видеоверсии занимают примерно от седьмой до десятой части размера GIF. Видео, воспроизводимое с атрибутами autoplay, loop, muted и playsinline, ведет себя на странице точно так же, как GIF.

Сколько цветов может быть в GIF?

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

Источники

Похожие конвертеры

Все статьи