Инструкция

Как уменьшить размер GIF без потери качества

Гифка на 12 мегабайт не отправляется в мессенджере, тормозит страницу и раздражает. Хорошая новость: GIF почти всегда можно ужать в несколько раз — и зритель не заметит разницы, если знать, что именно резать. Разберём пять приёмов по порядку: от безопасных до радикальных, с реальными цифрами экономии.

Изогнутый световой след на чёрном фоне — образ облегчённого, аккуратного файла
Цель — оставить движение, но убрать лишние «байты». Фото: Pexels

Почему GIF столько весит

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

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

Главное правило

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

Шаг 0: оптимизация без потерь

Сначала выжмем то, что бесплатно. Оптимизация без потерь убирает избыточные данные, не трогая ни одного пикселя: объединяет одинаковые области, удаляет неизменные части между кадрами (это и есть disposal-оптимизация). Качество остаётся идеальным, а файл худеет примерно на 20–40%. Это всегда первый шаг — он не имеет минусов.

Способ 1: сократить палитру

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

Действуйте от меньшего: попробуйте 64 цвета, посмотрите результат, при необходимости поднимите до 128. Для яркого фото-мема с градиентами 64 может оказаться мало — там пригодится дизеринг.

Про дизеринг

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

Способ 2: убрать лишние кадры

Кадры — второй по силе рычаг. Многие гифки записаны с частотой 30 кадров в секунду, хотя для зацикленной анимации хватает 15 fps, а часто и 10–12. Снижение частоты вдвое примерно вдвое уменьшает вес, а глаз почти не замечает разницы в коротком цикле.

Технически это «выбрасывание» каждого второго кадра с удвоением задержки оставшихся — чтобы анимация шла с той же скоростью, просто плавность чуть грубее. Главное не переусердствовать: ниже 10 fps движение становится рваным.

Способ 3: уменьшить разрешение

Это самый мощный приём. Вес растёт квадратично от размеров, поэтому уменьшение ширины и высоты вдвое режет файл на 70% и больше. Если ваша гифка показывается в чате или ленте маленьким окошком, ей не нужны 1280 пикселей по ширине — 480–640 за глаза.

−50%палитра 256 → 64
−50%кадры 30 → 15 fps
−70%+размер уменьшен вдвое
Размытая зелёно-оранжевая полоса света — метафора прореживания кадров
Прореживание кадров и уменьшение размера дают самую большую экономию. Фото: Pexels

Способ 4: lossy-сжатие

Если после трёх предыдущих шагов файл всё ещё великоват, включается lossy-сжатие GIF. Звучит парадоксально (ведь LZW — без потерь), но трюк в подготовке: кодировщик слегка «выравнивает» соседние пиксели, чтобы LZW нашёл больше повторов и сжал сильнее. Инструменты вроде gifsicle или онлайн-оптимизаторов дают так ещё 30–50% экономии.

Уровень потерь обычно регулируется ползунком. На значениях 30–80 шум почти незаметен, выше — начинают проступать характерные «грязные» разводы. Подбирайте на глаз.

Работайте с оригиналом

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

Способ 5: уйти от GIF в WebP

Самый честный ответ на вопрос «как сильно сжать GIF» — перестать использовать GIF. Перевод анимации в WebP даёт в среднем −64% к размеру по сравнению с исходной гифкой (по данным Google), и при этом цвет становится полным, а прозрачность — плавной. Файл всё так же вставляется тегом <img> и зацикливается сам.

Для длинных роликов ещё выгоднее видео MP4 или WebM — там экономия доходит до 90%, но нужен тег <video>. Если же файл должен оставаться именно GIF (например, для стикеров мессенджера, который не ест WebP) — ограничьтесь способами 1–4.

Самый быстрый способ ужать гифку

Загрузите GIF в конвертер FormatZ — он сам соберёт все кадры с таймингами и выдаст WebP в 5–10 раз легче, без потери плавности и зацикливания.

Сжать GIF через WebP

Порядок действий и чек-лист

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

1

Оптимизируйте без потерь

Бесплатные −20–40% без единого изменённого пикселя.

2

Урежьте палитру и кадры

256 → 64 цвета и 30 → 15 fps — два мягких шага, каждый ≈ вдвое.

3

Уменьшите размер

Подгоните ширину под реальное место показа — самый мощный рычаг.

4

Добейте lossy или WebP

Нужен лёгкий GIF — lossy. Нужен максимум — переведите в WebP.

Если в итоге вы решите конвертировать формат — пригодятся GIF в WebP для анимации и GIF в PNG для одного кадра. Все преобразования — на странице всех форматов. А чтобы понять, какой формат вообще выбрать, загляните в разбор GIF против WebP и MP4.

Лучшее сжатие — это сумма маленьких уступок, которых никто не заметит, а не одна большая жертва качеством.
Полностью без потерь — только немного: оптимизация убирает повторяющиеся данные и даёт примерно 20–40% экономии, не трогая пиксели. Чтобы ужать сильнее, приходится чем-то жертвовать: цветами, кадрами или размером. Хитрость в том, чтобы резать то, что глаз почти не замечает.
Для скринкастов интерфейса и графики 64 цвета — отличная отправная точка: переход с 256 до 64 обычно вдвое уменьшает файл почти без видимой разницы. Для ярких мемов с фото пробуйте 128. Если на градиентах появился бэндинг, включите дизеринг или верните больше цветов.
Сильнее всего бьёт по весу разрешение: уменьшение ширины и высоты вдвое режет размер на 70% и больше. На втором месте — число кадров (с 30 до 15 fps это примерно вдвое), на третьем — палитра. Комбинируйте все три приёма понемногу.
Это режим, в котором кодировщик намеренно «огрубляет» соседние пиксели, чтобы LZW лучше их сжал. Lossy GIF (например, в gifsicle или ezgif) даёт ещё 30–50% экономии ценой лёгкого шума. На уровне 30–80 разница обычно незаметна.
Тогда лучше вообще уйти от GIF. Перевод анимации в WebP даёт в среднем −64% к размеру при полном цвете, а для длинных роликов MP4/WebM экономит до 90%. Конвертировать GIF в WebP можно онлайн в конвертере FormatZ.