Загрузить файл
  1. base64hub
  2. Инструменты для изображений
  3. Base64 в JPG

Base64 в JPG

Вставьте Base64 фотографии, с префиксом data:image/jpeg;base64, или без, и сохраните её как .jpg. Декодированный файл – это исходный JPEG байт в байт, вместе с метаданными.

Бесплатно без регистрации и ограничений Локально ничего не загружается Точно исходный файл байт в байт Обновлено 27 окт. 2026 г.
Ввод –Результат –Размер –

Обработка идёт в браузере. Эта страница не может никуда отправить ваши данные – откуда мы это знаем

Как перевести Base64 в JPG

  1. Вставьте строку в поле. Подходят и чистый Base64, начинающийся с /9j/, и полные URI data:image/jpeg;base64,, а также тег <img> или правило CSS, в которых он есть.
  2. Строка статуса подтвердит Корректный Base64 и Определено: JPEG, а превью покажет фото с размером в пикселях и размером файла.
  3. Задайте Имя файла и нажмите Скачать файл.

Большие фото тоже подойдут. Строку Base64 в несколько мегабайт можно вставить или открыть из файла .txt; всё, что больше 4 MB, декодируется без показа в текстовом поле.

Что сохраняется при декодировании JPEG

Декодирование возвращает ровно те байты, что были закодированы. Качество не меняется, ничего не пережимается, поэтому вместе с фото возвращается всё, что было в исходном файле:

  • Метаданные EXIF: модель камеры, время съёмки, ориентация и, если была включена геолокация, координаты GPS. Если Base64 прислал вам кто-то другой, фото может рассказать больше, чем он собирался. Если вы собираетесь передать его дальше, сначала удалите метаданные, например через JPG в Base64 с настройкой Удалить метаданные (EXIF).
  • Встроенные миниатюры и цветовые профили.
  • Данные после конца изображения. Динамические фото (motion photos) с некоторых телефонов на Android дописывают после JPEG короткое видео, поэтому такое «фото» может оказаться в несколько раз больше ожидаемого.

По SHA-256 под превью можно доказать, что сохранённый файл совпадает с хешем, который вам дали.

Как отличить JPEG от того, что только называется JPEG

Декодер смотрит на байты и игнорирует метку. URI data:image/jpeg с данными PNG или поле API photo_jpg, в котором лежит WebP, будут названы своими именами: «Похоже на WebP, а не на JPEG» с кнопкой Скачать как .webp.

CDN для картинок выбирают формат по заголовку Accept браузера, так что картинка, полученная как photo.jpg и закодированная в Base64 в браузере, может оказаться WebP или AVIF. Картинка, скопированная через «Копировать изображение» в браузере, обычно попадает в буфер обмена как PNG, даже если на странице был JPEG, и любой кодировщик, взявший её из буфера, выдаст Base64 от PNG.

Если вам действительно нужен JPEG, переименование не поможет. Сохраните файл в его настоящем формате, затем сконвертируйте его через картинку в Base64, выбрав JPEG в поле Конвертировать в, и декодируйте результат здесь.

Как распознать обрезанный JPEG

Файлы JPEG заканчиваются маркером FF D9. В зависимости от остатка деления длины файла на 3 это даёт одно из трёх окончаний Base64:

Длина файла mod 3Последние байтыBase64 заканчивается на
2FF D9/9k=
1.. FF D9/2Q==
0.. FF D9/Z, обычно //Z

Обрезанный JPEG всё равно декодируется. Браузеры рисуют полученную часть, поэтому низ фото серый или пропадает, а прогрессивный JPEG выглядит размытым. Типичные причины – слишком короткий столбец в базе данных, логгер с ограничением длины строки и мессенджер, который делит длинный текст на части. Скопируйте значение из источника ещё раз.

Та же проверка на Python:

import base64

def check_jpeg(b64: str) -> str:
    data = base64.b64decode(b64.split(",", 1)[-1])
    if not data.startswith(b"\xff\xd8\xff"):
        return "not a JPEG"
    end = data.rfind(b"\xff\xd9")
    if end < 0:
        return "truncated: no end-of-image marker"
    extra = len(data) - end - 2
    return f"complete, {extra} bytes after the end marker" if extra else "complete"

Считайте её быстрым тестом. JPEG с камеры содержит миниатюру EXIF со своим FF D9, так что сильно обрезанное фото может её пройти. Больше о декодировании файлов можно прочитать в статье Base64 в Python.

Частые проблемы

  • Ошибка «Неверная длина». Один символ потерялся или добавился, обычно на переносе строки при копировании. Скопируйте всё значение ещё раз.
  • Недопустимый символ \. Строка пришла из JSON с экранированными слешами (\/9j\/4AAQ...). Пропустите её через починку Base64 или сначала уберите экранирование JSON.
  • Фото огромное. Base64 скрывает настоящий размер картинки: строка на 4 MB – это фото на 3 MB. Строка Размер показывает размер после декодирования, а размеры в пикселях указаны над превью.

Вопросы и ответы

Какое расширение у декодированного файла: .jpg или .jpeg?

Любое. Оба расширения означают один и тот же формат, и все программы принимают оба. Инструмент использует .jpg; если система требует длинный вариант, впишите jpeg в поле Расширение.

Как проверить, что строка Base64 с JPEG полная?

Полный JPEG заканчивается байтами FF D9, поэтому его Base64 обычно заканчивается на /9k=, /2Q== или /Z. Если строка заканчивается иначе или у картинки нет нижней части, скорее всего, данные обрезаны.

Можно ли посмотреть EXIF декодированного фото?

Поля EXIF инструмент не выводит, но Показать hex-дамп покажет блок Exif и часто производителя камеры в текстовом столбце. Для полного списка скачайте файл и откройте его в просмотрщике EXIF.

Почему в некоторых приложениях декодированное фото повёрнуто?

Телефоны часто сохраняют пиксели боком, а поворот записывают в тег EXIF. Браузеры его учитывают, поэтому превью выглядит правильно, а программы, которые тег игнорируют, показывают исходную ориентацию. Байты в обоих случаях одни и те же.