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

Конвертировать изображения в GIF

Сделайте из одного кадра статичный GIF или соберите из серии кадров анимацию. Управляйте частотой кадров, порядком и зацикливанием.

Перетащите файлы сюда

.jpg, .jpeg, .png, .webp, .bmp · до 20 МБ

Как создать GIF

  1. 1

    Перетащите кадры в нужном порядке

    Каждый добавленный файл становится одним кадром — до 300 штук. Можно смешивать JPEG, PNG, WebP и BMP в любом сочетании.

  2. 2

    Настройте частоту кадров и зацикливание

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

  3. 3

    Скачайте GIF

    На выходе всегда один файл, без ZIP. Смысл этого инструмента в том, что много исходников превращаются в одну анимацию.

Что GIF умеет, а чего нет

GIF — формат из 1989 года, и это заметно. Каждый кадр ограничен палитрой из 256 цветов, а прозрачность — один бинарный флажок на пиксель, а не плавный альфа-канал. Отсюда два следствия, и ни одно из них не ошибка инструмента. Фотография с мягкими градиентами получает заметный цветовой шум: 256 цветов должны заменить миллионы, а разница размазывается по изображению в виде дизеринга. Картинка с мягкой тенью, уходящей в прозрачность, получает жесткий край: каждый пиксель обязан быть либо полностью нарисованным, либо полностью пустым. Если это критично, анимированный WebP или AVIF сохраняет исходник намного точнее. Ссылки на оба варианта есть в карточке результата.

Одна палитра на всю анимацию

Цвета равномерно выбираются сразу из всех кадров, и по ним строится одна общая палитра. Если подбирать палитру для каждого кадра отдельно, каждый кадр сам по себе будет чуть точнее, но смотреть анимацию станет хуже: палитра начнет прыгать от кадра к кадру, а ровные области — заметно пульсировать. По той же логике выбирается размер холста. Первый кадр в итоговом порядке задает размеры. Остальные кадры масштабируются под него с сохранением соотношения сторон и дополняются белыми полями, а если у кадра есть альфа-канал — прозрачностью. Ничего не обрезается.

Частота кадров грубее, чем кажется

GIF хранит задержку каждого кадра в сотых долях секунды, поэтому не каждая частота кадров попадает точно. Десять кадров в секунду — это ровно 10 единиц. Двенадцать превращаются в 8 единиц, а это уже 12,5 кадра в секунду. Тридцать превращаются в 3 единицы, то есть примерно 33. Инструмент округляет до ближайшего доступного значения и показывает это, а не скрывает. На практике для фотопоследовательностей все, что между 8 и 15 кадрами в секунду, выглядит плавно. Для слайдшоу, где картинку нужно успеть рассмотреть, лучше подходит диапазон от 2 до 5.

Файлы остаются на вашем устройстве

Декодирование, построение палитры и кодирование GIF происходят в этой вкладке браузера с помощью декодеров на WebAssembly и кодера на JavaScript. Ничего не загружается на сервер, ни один кадр нигде не сохраняется, а при закрытии вкладки все очищается из памяти. Здесь это важно вдвойне: последовательность кадров часто равна целой съемке.

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

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

Потому что 256 цветов заменяют миллионы цветов исходника. Видимая «крапчатая» текстура — это дизеринг: небольшие намеренные цветовые ошибки, разбросанные так, чтобы издали средний цвет был верным. Дизеринг можно отключить, тогда вместо крапинок появятся заметные ровные полосы. Можно и уменьшить палитру, чтобы сознательно получить постеризованный вид.

Сколько кадров можно добавить?

До 300 файлов, по 20 МБ каждый и суммарно до 150 МБ, с ограничением 16 мегапикселей на кадр. При 300 кадрах и максимальном размере холста построение GIF занимает около 25 секунд. Холсты поменьше обрабатываются заметно быстрее.

Как управлять порядком кадров?

По умолчанию кадры идут в порядке списка файлов, и там же их можно перетаскивать. Если добавляли экспортированную последовательность, переключитесь на «По имени файла». Сортировка естественная: frame2 встанет перед frame10, а не после. «В обратном порядке» переворачивает исходную последовательность загрузки.

Что значит «зацикливать бесконечно» в самом файле?

В файл записывается блок приложения NETSCAPE2.0 с числом повторов 0. Любой просмотрщик читает это как «повторять бесконечно». Значение 3 означает, что анимация проигрывается один раз, повторяется еще три раза и останавливается на последнем кадре. Один кадр блока цикла не получает вообще: однокадровый GIF — это статичное изображение.

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

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

Можно сделать GIF из одной фотографии?

Да. Из одного файла получится однокадровый статичный GIF. Настройки частоты кадров и зацикливания к нему не применяются, а имя берется от вашего оригинала. Это обычный сценарий: некоторые форумы и мессенджеры принимают GIF там, где другие форматы отклоняют.

Чем это отличается от конвертации видео в GIF?

Этот инструмент берет уже готовые отдельные изображения, по одному на кадр. Инструмент «видео в GIF» сначала декодирует видеопоток и решает, какие кадры оттуда извлекать. Если у вас MP4 или MOV, начните с него. Если есть экспортированная последовательность изображений или набор отдельных фото, вам нужен этот инструмент.

Файлы загружаются на сервер?

Нет. Каждый кадр декодируется, квантуется и кодируется внутри вашего браузера. Ни на одном этапе нет загрузки и серверной копии.

Похожие инструменты