Конвертировать APNG в GIF
Анимированный PNG — это GIF с лучшим цветом, который половина интернета принимает за неподвижную картинку. Превратите его в GIF, который действительно движется там, где вы его публикуете, со всеми кадрами. Ничего не сохраняется.
- Не сохраняется
- Без очереди и ожидания
- Без регистрации и водяных знаков
Как это работает
Добавьте анимированные PNG
Обычно у них расширение .png, иногда .apng — подходят оба. Обычный PNG тоже подойдёт и превратится в GIF из одного кадра.
Конвертируйте
Каждый кадр читается со своей задержкой и записывается в GIF с палитрой, построенной по самой картинке, — 256 цветов или меньше, чтобы файл был поменьше.
Скачайте
По одному или 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; в других браузерах записывается только первый кадр, и в строке файла это указано.
Разместите этот инструмент на своём сайте
Бесплатно для любого блога, страницы класса или справочной статьи. Вставьте один фрагмент кода — и посетители смогут пользоваться инструментом прямо на вашей странице.