Как уменьшить размер GIF без потери качества
Гифка на 12 мегабайт не отправляется в мессенджере, тормозит страницу и раздражает. Хорошая новость: GIF почти всегда можно ужать в несколько раз — и зритель не заметит разницы, если знать, что именно резать. Разберём пять приёмов по порядку: от безопасных до радикальных, с реальными цифрами экономии.
Почему 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 за глаза.
Способ 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Порядок действий и чек-лист
Чтобы получить максимум при минимуме потерь, идите сверху вниз и останавливайтесь, как только размер устроит.
Оптимизируйте без потерь
Бесплатные −20–40% без единого изменённого пикселя.
Урежьте палитру и кадры
256 → 64 цвета и 30 → 15 fps — два мягких шага, каждый ≈ вдвое.
Уменьшите размер
Подгоните ширину под реальное место показа — самый мощный рычаг.
Добейте lossy или WebP
Нужен лёгкий GIF — lossy. Нужен максимум — переведите в WebP.
Если в итоге вы решите конвертировать формат — пригодятся GIF в WebP для анимации и GIF в PNG для одного кадра. Все преобразования — на странице всех форматов. А чтобы понять, какой формат вообще выбрать, загляните в разбор GIF против WebP и MP4.
Частые вопросы о сжатии GIF
Читайте также
ОсновыЧто такое GIF: как формат анимаций пережил весь интернет
История, устройство и слабости формата-долгожителя.
СравнениеGIF против WebP и MP4: чем заменить тяжёлые гифки
Кто легче, кто красивее и что выбрать под задачу.
ГайдКак сделать GIF из видео или картинок
От ролика до зацикленной гифки — пошагово.