Кодирование

Data URI / Base64 изображения

Кодирование изображения в Data URI (data:image/…;base64,…) для вставки в CSS/HTML и декодирование Data URI или сырого Base64 обратно в файл — всё прямо в браузере.

Просмотр изображения появится здесь.

A Data URI embeds a file's contents (usually an image) directly into HTML or CSS as a Base64 string, instead of linking to a separate file. This removes an extra network request at the cost of a larger document.

How to use it

Common uses

Things to keep in mind

Base64 encoding grows the data by about 33% — for large images, a Data URI is usually a worse choice than a separate file with browser caching.

A Data URI isn't cached separately from the document it's embedded in — it gets re-downloaded along with the page every time.

Статья об этом инструменте: Data URI: когда встраивать изображения прямо в код

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

Зачем вставлять изображение как Data URI, а не подключать файлом?

Data URI встраивает изображение прямо в CSS или HTML одним значением, что удобно для маленьких иконок и спрайтов — не нужен отдельный HTTP-запрос. Для крупных или часто переиспользуемых изображений это невыгодно.

Есть ли ограничения на размер Data URI?

Да, на практике браузеры и особенно email-клиенты по-разному ограничивают допустимую длину такой строки, и очень большие Data URI могут не сработать или замедлить парсинг страницы. Кроме того, в отличие от обычного файла по URL, Data URI не кешируется браузером отдельно от документа, в который он встроен.

Изображение загружается на сервер для обработки?

Нет, кодирование и декодирование изображения выполняются полностью в браузере, файл никуда не отправляется.

Можно ли использовать Data URI для SVG без Base64?

Да. SVG — это текст (XML), поэтому вместо Base64 достаточно percent-encoding спецсимволов: data:image/svg+xml,%3Csvg...%3E. Такой вариант компактнее и остаётся редактируемым прямо в CSS-файле.

Можно ли вставить Data URI в атрибут href или background-image?

Да, Data URI работает везде, где ожидается ссылка на ресурс — в src, href, background-image в CSS и даже в @import. Синтаксис и ограничения размера те же, что и для тега img.

Статьи: Кодирование

Base64: зачем нужно кодирование и как оно работает

Как Base64 превращает бинарные данные в текст ASCII и где это реально нужно.

Base32: чем отличается от Base64 и когда удобнее

Регистронезависимый алфавит Base32 и сценарии, где он удобнее Base64.

URL Encode/Decode: percent-encoding в ссылках

Как спецсимволы в адресной строке и query-параметрах превращаются в %XX-последовательности.

HTML Entities: как безопасно выводить спецсимволы на странице

Почему символы < > & нужно экранировать и как это предотвращает поломку разметки.

JWT: структура токена и что значит «декодировать» JWT

Header, payload и signature JWT-токена и почему декодирование — не то же самое, что проверка подписи.

Unicode Escape: что означают последовательности \uXXXX

Откуда в JSON и JS-строках берутся последовательности вида \u0041 и что они означают.

ROT13 и шифр Цезаря: простая замена символов

Почему сдвиг на 13 букв делает ROT13 симметричным и зачем его вообще используют сегодня.

Punycode: как домены с кириллицей работают в DNS

Как домен вроде «пример.рф» превращается в ASCII-запись с префиксом xn--.

Азбука Морзе: как текст превращается в точки и тире

Принцип кодирования букв точками и тире и где азбука Морзе применяется сейчас.

Gzip + Base64: сжатие данных для передачи текстом

Зачем сжатые бинарные данные ещё и кодируют в Base64 перед тем, как поместить в текстовое поле.

XML Entities: экранирование символов в XML-документах

Пять обязательных XML-entity, без которых документ ломается при парсинге.