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

JPG в Base64

Перетащите JPG или JPEG и получите его Base64 или URI data:image/jpeg. Фото с телефона большие, поэтому перед кодированием их можно уменьшить и удалить данные EXIF, включая GPS.

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

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

Как конвертировать JPG в Base64

  1. Перетащите файл .jpg или .jpeg, выберите его через диалог или вставьте скопированную картинку через Ctrl+V.
  2. Для фото прямо с камеры или телефона задайте Макс. ширина (например, 1200) и настройте Качество. По умолчанию стоит 85%.
  3. Отметьте Удалить метаданные (EXIF), если фото будут пересылать или публиковать.
  4. Выберите Формат вывода: по умолчанию стоит Data URI, а большинству API нужен чистый Base64. Затем нажмите Скопировать результат.

В превью видны размеры в пикселях, а после перекодирования – новый размер файла, так что можно попробовать несколько настроек и посмотреть, как падает число.

Что внутри Base64 у JPG

Все файлы JPEG начинаются с маркера SOI FF D8 FF, поэтому в Base64 все они начинаются с /9j/. Следующие символы подсказывают, какой заголовок идёт дальше:

Файл начинается сBase64 начинается сОткуда обычно берётся
FF D8 FF E0 + JFIF/9j/4AAQSkZJRgграфические редакторы, экспорт для веба, большинство конвертеров
FF D8 FF E1 + Exif/9j/4, а дальше разные символыкамеры и телефоны (сначала блок EXIF)
FF D8 FF DB/9j/2wочищенные файлы или минималистичные кодировщики

В JPEG с камеры есть блок EXIF с моделью устройства, временем съёмки, ориентацией и, если была включена геолокация, координатами GPS. Base64 ничего из этого не скрывает. Любой, кто декодирует строку в Base64 в JPG, получит исходный файл со всеми метаданными.

Как ужать фото перед кодированием

Фото с современного телефона весит несколько мегабайт. В Base64 оно вырастает ещё на треть. Для JSON-запроса, файла CSS или HTML-письма это слишком много, и грузится такое медленно везде.

Основную работу делают две настройки:

  • Макс. ширина задаёт длину горизонтальной стороны в пикселях. Если вдвое уменьшить ширину, пикселей станет вчетверо меньше.
  • Качество управляет сжатием JPEG. Оно действует всякий раз, когда фото перекодируется, то есть когда задана Макс. ширина, формат в Конвертировать в или включено удаление метаданных. Между 75% и 85% разницу на фотографии трудно заметить, а файл получается намного меньше, чем при 95–100%.

Перекодирование JPEG всегда немного теряет детали, потому что файл декодируется и сжимается заново. Делайте это один раз и из оригинала, не прогоняя результат через конвертер повторно.

У JPEG нет прозрачности. Если сконвертировать в JPEG картинку PNG или WebP с прозрачным фоном, прозрачные места станут белыми. Когда нужен альфа-канал, оставайтесь на PNG или WebP.

Где используется JPG в Base64

  • Загрузка фото через JSON API, включая модели компьютерного зрения, которые описывают или анализируют картинки. Многие из них уменьшают большие картинки на своей стороне, так что JPEG поменьше ускоряет запрос без видимых потерь.
  • Встроенные миниатюры и заглушки в HTML, например размытое превью шириной 20 пикселей, которое показывается, пока грузится полная картинка.
  • Документы в одном файле, например HTML-отчёт с несколькими встроенными фотографиями.

Для больших фото на сайте обычный файл картинки по-прежнему лучше: его можно закешировать, загрузить лениво и отдать в нескольких размерах через srcset.

Уменьшение и кодирование в Python

С Pillow уменьшение, перекодирование и Base64 укладываются в несколько строк. Pillow не копирует EXIF в новый файл, если не передать его явно, так что этот код заодно удаляет метаданные:

import base64, io
from PIL import Image

with Image.open("photo.jpg") as im:
    im.thumbnail((1024, 1024))
    buf = io.BytesIO()
    im.save(buf, "JPEG", quality=80)

b64 = base64.b64encode(buf.getvalue()).decode("ascii")

Чтение файлов и потоковая обработка описаны в статье Base64 в Python.

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

  • Фото отображается повёрнутым. Телефоны часто хранят снимок «на боку» и записывают поворот в EXIF. Современные браузеры учитывают этот тег, а когда инструмент перерисовывает фото, он сохраняет видимую ориентацию. Программы, которые игнорируют EXIF, могут показать исходную ориентацию.
  • Base64 длиннее, чем ожидалось. Посмотрите размер входа в счётчике. «Маленькое» фото из мессенджера вполне может быть шириной 3000 пикселей.
  • API отвергает картинку. Уточните, нужен ли ему префикс data:image/jpeg;base64, или чистый Base64, и указывайте тип image/jpeg, а не image/jpg.

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

Как правильно в data URI: image/jpg или image/jpeg?

image/jpeg. Типа image/jpg в реестре нет. Браузеры всё равно покажут картинку, потому что определяют формат по байтам, но API, которые проверяют тип, могут её отвергнуть.

Остаётся ли в JPG в Base64 моё местоположение GPS?

Да, если оно было в оригинале. Base64 копирует каждый байт, включая EXIF. Чтобы его убрать, отметьте Удалить метаданные (EXIF): перед кодированием фото перерисуется без метаданных.

Почему Base64 моего JPG начинается с /9j/?

Любой JPEG начинается с байтов FF D8 FF, и эти три байта кодируются ровно в /9j/. Строка, которая начинается иначе, – не JPEG, что бы ни говорило имя файла.

Как сделать Base64 фотографии короче?

Уменьшите число пикселей и качество до кодирования. Макс. ширина под размер показа и Качество около 75–85% ужимают фото с телефона куда сильнее любых манипуляций с самим Base64.