Изображение в Base64 — это техника кодирования бинарных данных изображения в ASCII-текстовую строку. Base64 использует 64 печатных символа (A-Z, a-z, 0-9, +, /) для представления бинарных данных, преобразует каждые 3 байта в 4 символа Base64 и добавляет = как padding в конце. Процесс соответствует стандарту RFC 4648.
**Принцип кодирования**: Base64 делит каждые 3 байта (24 бита) на четыре группы по 6 бит, каждая из которых сопоставляется символу алфавита Base64. Если число байтов не делится на 3, в конце добавляются 1-2 символа = padding. Поэтому размер файла увеличивается примерно на 33% (4/3 ≈ 1.33).
**Оптимизация Web Worker**: инструмент использует Web Workers, чтобы выполнять кодирование в потоке браузера, отделенном от основного потока. ArrayBuffer.transfer() позволяет передавать данные в Worker без копирования и избегать блокировки. Даже при обработке изображений в несколько MB UI остается плавным, а прогресс отображается в реальном времени.
**Конфиденциальность и безопасность**: в отличие от инструментов, требующих загрузки изображений на сервер, этот инструмент полностью работает в браузере. Данные изображения не проходят через сторонние серверы, что особенно важно для чувствительных изображений, например документов или договоров.
**Сценарии использования**: Base64-изображения часто применяются в CSS Sprites (уменьшение HTTP-запросов), HTML email-шаблонах (избежание блокировки изображений почтовыми клиентами), передаче бинарных данных через API, а также в расширениях браузера или single-file приложениях, где нельзя ссылаться на внешние ресурсы.