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

Конвертировать APNG в GIF

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

  • Не сохраняется
  • Без очереди и ожидания
  • Без регистрации и водяных знаков

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

1

Добавьте анимированные PNG

Обычно у них расширение .png, иногда .apng — подходят оба. Обычный PNG тоже подойдёт и превратится в GIF из одного кадра.

2

Конвертируйте

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

3

Скачайте

По одному или ZIP-архивом. В строке файла указано, сколько кадров перенесено.

Что такое APNG

APNG — это обычный PNG с тремя дополнительными типами блоков: acTL объявляет анимацию, fcTL перед каждым кадром задаёт его размер, положение, задержку и то, что делать с предыдущим кадром, а fdAT хранит пиксели кадра. Они вставлены так, что просмотрщик, который их не знает, видит обычный неподвижный PNG. В 2004 году в этой обратной совместимости и был весь смысл, а сегодня в ней вся проблема: программа, которая проверяет только заголовок, относит файл к «картинкам» и дальше не смотрит.

Каждый кадр собирается в полную картинку так, как предписывает файл (кадры могут занимать только часть холста и накладываться на прежнее содержимое или заменять его), затем сводится к палитре и записывается в GIF с той же задержкой. Квантователь строит свои 256 цветов по самому кадру и применяет дизеринг; плоская графика и пиксельные стикеры — а APNG по большей части именно такие — проходят практически без изменений. Задержки меньше 20 ms увеличиваются до 100 ms, как браузеры в любом случае делают с GIF.

Прозрачность становится однобитной: пиксель либо виден, либо нет. Стикер APNG с мягкой тенью получит вместо неё чёткий край, обрезанный на половине непрозрачности. Это ограничение GIF, а не конвертации, и обойти его можно только форматом с настоящим альфа-каналом — WebP, если получатель его воспроизводит.

Если нужно другое

ffmpeg читает APNG и пишет GIF с двухпроходной палитрой: ffmpeg -i in.png -vf "split[a][b];[a]palettegen[p];[b][p]paletteuse" out.gif. Он ещё и предлагает варианты дизеринга, которых нет на этой странице, а на градиентах это важно.

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

Частые вопросы

Как понять, что мой PNG анимированный?

Откройте его в Chrome, Firefox или Safari: все три воспроизводят APNG, так что если там он движется, а там, куда вы его выложили, — нет, это APNG, и вам сюда. Строка файла здесь тоже покажет, сколько кадров найдено.

GIF сохранит тайминг?

Да. В обоих форматах у каждого кадра своя задержка, и она переносится, так что прыжок из 12 кадров останется прыжком из 12 кадров с той же скоростью.

Почему GIF выглядит зернистее?

В кадре APNG 16 миллионов цветов и плавная прозрачность, в кадре GIF — 256 цветов и никакой плавной прозрачности. Палитра строится по самой картинке и сглаживается дизерингом — отсюда и зерно. На плоской графике — обычном содержимом APNG — его почти не видно.

А PNG без анимации?

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

Хранятся ли где-нибудь мои файлы?

Нет — ничего не сохраняется ни на каком этапе.

Почему Discord или Slack показывает мой стикер неподвижным?

Многие формы загрузки узнают заголовок PNG, считают файл обычной картинкой и оставляют только первый кадр. Те же сервисы воспроизводят GIF целиком. Конвертация — надёжное решение; альтернатива — WebP, там, где он поддерживается.

Полезно знать: GIF вмещает 256 цветов на кадр и не знает частичной прозрачности, поэтому мягкие края становятся жёсткими, а на градиентах появляются ступеньки. Чтобы прочитать кадры APNG, нужен свежий Chrome, Edge или Opera; в других браузерах записывается только первый кадр, и в строке файла это указано.

Разместите этот инструмент на своём сайте

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