Перевод pNG в Base64: таблицы, формулы и онлайн-конвертер

💻 IT и кодОбновлено: 11 июля 2026 г.4 мин чтения
Вставляете PNG в email или HTML и получаете битую картинку? Base64 решает проблему, но считать размер или писать конвертер вручную — муторно. Даём точные формулы, готовый код и <b>онлайн-инструмент</b>, чтобы сделать это за секунду.
⚡ Коротко: главное
  • Размер Base64-строки для PNG всегда на ~33% больше исходного файла.
  • data:image/png;base64,... без MIME-типа не откроется в браузере.
  • Онлайн-конвертер работает локально — файл не уходит на сервер.
  • Для больших PNG (>1 MB) Base64 замедлит загрузку страницы — лучше используйте ссылки.

Что такое Base64 и как он связан с PNG?

Base64 — это способ представить бинарные данные (например, PNG) как текст. Строка состоит из символов A-Z, a-z, 0-9, + и /. На практике это используют, чтобы встроить картинку прямо в код:

<img src="data:image/png;base64,iVBOR...">
.

Формула перевода: каждые 3 байта (24 бита) кодируются в 4 символа Base64. Если байтов не кратно 3, добавляются символы '=' (падинг). Итоговый размер:

РазмерBase64 = ceil(размерPNG / 3) * 4
.

Пример: файл 300 байт → 300/3=100 блоков → 100*4=400 символов. С учётом служебных (data:image/png;base64, ~23 символа) итог ~423.

Как перевести PNG в Base64: пошаговый пример с кодом

Самый быстрый способ для разработчика — консоль. Откройте Chrome DevTools (F12 → Console) и выполните мини-конвертер:

// Загружаем файл как Data URL
const input = document.createElement('input');
input.type = 'file';
input.accept = 'image/png';
input.onchange = e => {
  const file = e.target.files[0];
  const reader = new FileReader();
  reader.onload = () => console.log(reader.result);
  reader.readAsDataURL(file);
};
input.click();

Результат — строка вида data:image/png;base64,... — готова к вставке.

Если нужно сделать это в Node.js (для автоматизации):

const fs = require('fs');
const path = 'image.png';
const base64 = fs.readFileSync(path).toString('base64');
const dataUri = `data:image/png;base64,${base64}`;
console.log(dataUri);

Формула расчёта итогового размера Base64-строки

СоставляющаяРазмер (байт/символ)Пример для 300 байт
Исходный PNGN байт300
Base64 без падингаceil(N/3)*4400
Падинг (=)(3 - N%3) % 30 (кратно 3)
Префикс data URI~23 (data:image/png;base64,)23
Итоговая строка= префикс + ceil(N/3)*4423

На 2026 год это соотношение строгое — Base64 не сжимает данные, а лишь перекодирует.

Как перевести PNG в Base64 за 5 шагов
  1. 1
    Откройте инструмент

    Перейдите на Конвертер PNG в Base64

  2. 2
    Выберите PNG

    Нажмите 'Выбрать файл' или перетащите изображение

  3. 3
    Дождитесь обработки

    Файл обрабатывается локально, за секунду

  4. 4
    Скопируйте строку

    Нажмите 'Копировать' — строка готова к вставке

  5. 5
    Используйте в коде

    Вставьте в src атрибут img или css background

Самый быстрый способ без установки программ

Готовые онлайн-инструменты для конвертации

Вместо ручного кодирования используйте Конвертер PNG в Base64 — перетащите файл, получите готовую строку. Конфиденциально: всё обрабатывается в браузере.

Другие полезные конвертеры:

Чеклист: Готовность Base64-строки к продакшену

0 из 8

Подводные камни и частые ошибки

  • Забыли MIME-тип. Строка должна начинаться с data:image/png;base64, — иначе браузер не поймёт формат.
  • Переполнение буфера. В Node.js fs.readFileSync без кодировки выдаёт Buffer — это нормально. Не указывайте 'utf-8'.
  • Размер строки в HTML. Если PNG > 1 MB, вставлять Base64 прямо в атрибут src — плохая практика: страница будет грузиться дольше.
  • Лишние пробелы/переносы. В строке Base64 не должно быть пробелов и переносов строк. Если копируете из консоли — проверьте.
Edge case: очень маленький PNG (меньше 3 байт) даст много падинга (=). Например, 1 байт → 4 символа + == → итог 8 символов + префикс.

Как отладить, если Base64 не работает

  1. Проверьте, что строка начинается с data:image/png;base64,. Если нет — добавьте вручную.
  2. Откройте консоль браузера: F12, вкладка Console.
  3. Введите: atob('ваша_строка_без_префикса') — если ошибка, значит Base64 повреждён.
  4. Попробуйте открыть строку напрямую: вставьте её в адресную строку браузера и нажмите Enter. Если картинка не отображается — проблема в кодировке.
  5. Используйте Конвертер Base64 в PNG для проверки.

Когда Base64 — зло: альтернативы

Base64 увеличивает размер на 33% и не кешируется отдельно. Для частого использования (логотип на 100 страницах) лучше ссылка на файл.

В 2026 году практические правила:

  • Иконки до 10 KB — Base64 ок;
  • Изображения 10–100 KB — спорно, зависит от числа повторений;
  • Больше 1 MB — всегда внешняя ссылка.

Совет: современные браузеры поддерживают loading="lazy" на картинках — используйте для отложенной загрузки вместо Base64.

🧮 Посчитайте сами — инструменты по теме

🧭 Разделы по теме

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

Как конвертировать PNG в Base64 онлайн бесплатно?

Используйте Конвертер PNG в Base64. Перетащите файл, скопируйте результат. Всё в браузере, данные не отправляются на сервер.

Какой размер будет у Base64 строки для PNG 1 МБ?

Формула: ceil(1 048 576 / 3) * 4 + 23 ≈ 1 398 104 символов. Это ~1.33 МБ текста. На практике добавьте пару байт на падинг.

Почему моя Base64 строка не показывает картинку в HTML?

Проверьте MIME-тип: должно быть 'data:image/png;base64,'. Браузер без этого не поймет формат. Также убедитесь, что строка не обрезана и не содержит лишних символов.

Можно ли конвертировать Base64 обратно в PNG?

Да, используйте Конвертер Base64 в PNG. Вставьте строку, скачайте файл.

Чем отличается конвертация PNG и JPG в Base64?

В принципе одинаково. Разница только в MIME-типе: для JPG 'data:image/jpeg;base64,'. Формулы размера и кодирования идентичны.

Base64 увеличивает размер PNG?

Да, примерно на 33% из-за перекодировки каждых 3 байт в 4 символа. Плюс служебный префикс.

Какие программы поддерживают вставку PNG через Base64?

Все современные браузеры, HTML-редакторы, email-клиенты (кроме старых Outlook), редакторы кода при вёрстке писем.

Как уменьшить размер Base64 строки?

Никак. Base64 — не сжатие, а кодировка. Если файл большой, лучше сжать PNG перед конвертацией или использовать внешнюю ссылку.

Источники и нормативные документы

  1. MDN: Data URLs
  2. RFC 4648: Base64 Encoding
  3. W3Schools: Base64 Encoding/Decoding

Ещё по теме «IT и код»