Как пользоваться
- Вставьте текст Base64 или URI data:image/jpeg;base64 в поле ввода.
- Проверьте предпросмотр, определённый формат и размеры изображения.
- Формат JPG уже выбран. Передвиньте ползунок «Качество»: большие значения сохраняют больше деталей, меньшие уменьшают размер файла.
- Скачайте файл .jpg. Чтобы сохранить исходный JPEG без изменений, выберите вместо этого «Оригинал».
Как выглядит JPEG в Base64
Каждый файл JPEG начинается с байтов FF D8 FF, поэтому его Base64 всегда начинается с /9j/. Следующие символы подсказывают происхождение файла: /9j/4AAQSkZJRg — обычное изображение JFIF, а /9j/4Q обычно означает заголовок Exif, записанный камерой или телефоном. JPEG в Base64 встречаются при загрузке файлов из мобильных приложений, в отправленных формах, экспорте из CMS, вложениях электронной почты и полях с фотографиями в REST API.
JPG и JPEG — один и тот же формат; более короткое расширение пришло из MS-DOS, где расширения файлов ограничивались тремя символами. Правильный тип MIME — image/jpeg. Инструмент читает сами байты, поэтому data URI с меткой image/jpg или image/png всё равно декодируется правильно.
Качество, прозрачность и метаданные
JPEG сжимает с потерями, и каждое новое кодирование отбрасывает ещё немного деталей. Если на входе уже JPEG и вам нужен только файл, выберите Оригинал, чтобы сохранить его без повторного сжатия. Вариант JPG подходит для преобразования PNG, WebP и других форматов или для уменьшения большой фотографии. Качество около 80–90 процентов — распространённый компромисс между размером и чёткостью.
- Прозрачность. В JPEG нет альфа-канала, поэтому прозрачные области заливаются белым. Чтобы сохранить прозрачность, используйте PNG или WebP.
- Метаданные. При преобразовании перерисовываются только пиксели, поэтому данные Exif, например модель камеры или GPS-координаты, не переносятся. «Оригинал» сохраняет файл целиком, вместе с метаданными.
Декодирование JPEG из Base64 в Node.js
const fs = require('fs');
// удаляем префикс data URI, если он есть
const b64 = input.replace(/^data:[^,]+,/, '');
fs.writeFileSync('photo.jpg', Buffer.from(b64, 'base64'));
Для обратного преобразования воспользуйтесь инструментом JPG в Base64: он превращает фотографию в строку или data URI.
Часто задаваемые вопросы
JPG и JPEG — это одно и то же?
image/jpeg. Если программа ожидает одно из них, файл можно спокойно переименовать.Почему прозрачный фон стал белым?
JPEG не умеет хранить прозрачность, поэтому перед кодированием конвертер заливает прозрачные пиксели белым. Чтобы сохранить прозрачный фон, выберите PNG или WebP.
Как избежать потери качества?
Если данные Base64 уже содержат JPEG, скачайте их как «Оригинал», чтобы получить точные байты. Повторное кодирование в JPG, даже с высоким качеством, всегда добавляет потери.
Сохраняются ли данные Exif фотографии?
Только при выборе «Оригинал». Преобразованный JPG содержит лишь пиксели, так что это ещё и простой способ удалить данные о местоположении, прежде чем делиться фотографией.