Конвертер GIF в Base64

Кодируйте статичные и анимированные GIF в Base64. Исходный файл кодируется байт в байт, поэтому все кадры, их длительность и настройка повтора сохраняются.

Работает полностью в браузере. Данные никуда не загружаются.

Как пользоваться

  1. Перетащите GIF в область загрузки, нажмите на неё, чтобы выбрать файл, или вставьте изображение.
  2. Чтобы сохранить анимацию, оставьте в списке «Преобразовать в» значение «Исходный формат», а в списке «Макс. ширина» — значение «Исходный размер».
  3. Проверьте исходный размер и размер после кодирования: анимированные GIF быстро разрастаются.
  4. Скопируйте тег img или CSS background-image либо возьмите data URI, чистый Base64 или версию для Markdown.

О формате GIF

Формат GIF (Graphics Interchange Format, тип MIME image/gif) появился в 1987 году. Каждый кадр использует палитру не более чем из 256 цветов и сжимается без потерь алгоритмом LZW. Прозрачность работает по принципу «всё или ничего»: один цвет палитры можно пометить как прозрачный, но частичной прозрачности нет. Файл может содержать множество кадров с отдельными задержками и счётчиком повторов, поэтому GIF и стал форматом коротких анимаций.

Base64 файла GIF начинается с R0lGODlh для распространённой версии GIF89a или с R0lGODdh для более старой GIF87a.

Как сохранить анимацию

Если оставить исходный формат, инструмент кодирует байты файла как есть. Поэтому data URI анимируется точно так же, как сам файл, — и в теге <img>, и в качестве фона CSS.

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

Где data URI для GIF по-прежнему уместны

  • Небольшие индикаторы загрузки и анимированные значки состояния в CSS.
  • Классический прозрачный пиксель 1x1, который используют как заглушку в src. Он занимает всего несколько десятков байт, а в Base64 — заметно меньше 100 символов.
  • Простая штриховая графика с небольшим числом цветов, для которой GIF компактен.

Большие анимации подходят плохо. GIF-реакция размером 2 МБ превращается примерно в 2,7 МБ текста, который нельзя кешировать отдельно; видеофайл на сервере или анимированный WebP намного легче.

.loading {
  background: url("data:image/gif;base64,R0lGODlh...") no-repeat center;
}

<img src="data:image/gif;base64,R0lGODlh..." width="32" height="32" alt="Loading">

Часто задаваемые вопросы

Останется ли мой GIF анимированным после кодирования в Base64?

Да, если сохранить исходный формат и не менять размер. Base64 хранит файл целиком, включая все кадры и настройку повтора.

Почему мой GIF перестал двигаться после преобразования?

При преобразовании в PNG, JPEG или WebP, а также при изменении размера изображение заново отрисовывается по первому кадру. Инструмент не умеет создавать анимированные PNG или WebP, поэтому, чтобы сохранить движение, оставьте исходный GIF.

Сохраняет ли data URI для GIF прозрачность?
Да. Base64 сохраняет прозрачный цвет палитры. Однако частичной прозрачности в GIF нет, поэтому мягкие края на другом фоне могут выглядеть зубчатыми. PNG и WebP лучше справляются с плавными краями.
Как получить GIF обратно из строки Base64?
Вставьте строку в инструмент Base64 в GIF, чтобы посмотреть предпросмотр и скачать файл .gif.