Files
SnapOtter/apps/docs/ru/tools/image/image-to-base64.md
T
SnapOtterandGitHub 4963ab3bbd feat(docs-i18n): translate all documentation into 20 languages
All 181 docs markdown files translated into 20 languages (apps/docs/<locale>/**). Companion to the i18n code PR; admin-merged because the file count exceeds GitHub's per-PR CI trigger limit. Validated by pnpm i18n:check (all surfaces, 0 stale/missing) and a clean all-locale docs build.
2026-07-11 13:52:47 +08:00

5.7 KiB
Raw Blame History

description, i18n_source_hash, i18n_provenance, i18n_output_hash
description i18n_source_hash i18n_provenance i18n_output_hash
Конвертация изображений в base64 data URI для встраивания в HTML, CSS и другое. ba4b8f3b4ece human c2f8ffaf080a

Изображение в Base64

Конвертирует одно или несколько изображений в строки, закодированные в base64, и data URI. Поддерживает необязательную конвертацию формата, управление качеством и изменение размера. Полезно для встраивания изображений напрямую в HTML, CSS, JSON или шаблоны писем.

Конечная точка API

POST /api/v1/tools/image/image-to-base64

Принимает данные формы multipart с одним или несколькими файлами изображений и необязательным полем JSON settings.

Параметры

Параметр Тип Обязательный По умолчанию Описание
outputFormat string Нет "original" Конвертировать перед кодированием: original, jpeg, png, webp, avif, jxl
quality number Нет 80 Качество вывода для форматов с потерями (от 1 до 100)
maxWidth number Нет 0 Максимальная ширина в пикселях (0 = без изменения размера, не увеличивает)
maxHeight number Нет 0 Максимальная высота в пикселях (0 = без изменения размера, не увеличивает)

Пример запроса

curl -X POST http://localhost:1349/api/v1/tools/image/image-to-base64 \
  -H "Authorization: Bearer si_your-api-key" \
  -F "file=@icon.png" \
  -F 'settings={"outputFormat": "webp", "quality": 80, "maxWidth": 200}'

Несколько файлов:

curl -X POST http://localhost:1349/api/v1/tools/image/image-to-base64 \
  -H "Authorization: Bearer si_your-api-key" \
  -F "file=@icon1.png" \
  -F "file=@icon2.png" \
  -F "file=@icon3.png" \
  -F 'settings={"outputFormat": "original"}'

Пример ответа

{
  "results": [
    {
      "filename": "icon.png",
      "mimeType": "image/webp",
      "width": 200,
      "height": 200,
      "originalSize": 45000,
      "encodedSize": 28800,
      "overheadPercent": -36.0,
      "base64": "UklGRlYAAABXRUJQ...",
      "dataUri": "data:image/webp;base64,UklGRlYAAABXRUJQ..."
    }
  ],
  "errors": []
}

Поля ответа

Поле Тип Описание
results array Успешно сконвертированные изображения
errors array Изображения, которые не удалось обработать (с именем файла и сообщением об ошибке)

Объект result

Поле Тип Описание
filename string Исходное имя файла
mimeType string MIME-тип закодированного вывода
width number Итоговая ширина в пикселях (после любого изменения размера)
height number Итоговая высота в пикселях (после любого изменения размера)
originalSize number Исходный размер файла в байтах
encodedSize number Размер строки base64 в байтах
overheadPercent number Процентная разница размера относительно оригинала (положительная = больше, отрицательная = меньше)
base64 string Необработанные данные изображения, закодированные в base64
dataUri string Полный data URI, готовый к использованию в атрибутах src

Примечания

  • Кодирование base64 обычно увеличивает размер примерно на 33% по сравнению с двоичным файлом. Поле overheadPercent показывает фактическую разницу.
  • Когда outputFormat равен "original", файлы HEIC/HEIF конвертируются в JPEG (поскольку браузеры не могут отображать HEIC в data URI).
  • Параметры maxWidth и maxHeight изменяют размер с помощью fit: inside с withoutEnlargement, поэтому изображения меньше указанных размеров не увеличиваются.
  • В одном запросе можно обработать несколько файлов. Каждый файл обрабатывается независимо, и сбои не мешают успешной обработке остальных файлов.
  • Файлы SVG передаются как image/svg+xml без перекодирования (если не запрошена конвертация формата).
  • Это конечная точка только для чтения. Она не создаёт загружаемый файл или jobId. Данные base64 возвращаются напрямую в теле ответа.