Files
SnapOtter/apps/docs/ru/tools/image/resize.md
T
SnapOtterandGitHub f858c4cea0 feat: clearer, disambiguated tool names across all surfaces (#520)
Renames 18 ambiguous or hard-to-search tool names so image tools self-qualify like the other modalities ("Compress" becomes "Compress Image"), and cleans up a few awkward names. Propagated across search (constants.ts), display (en.ts + 20 locales), the OpenAPI base spec + 20 locale specs, and the docs tool-page headings in 21 languages. Removes the duplicate "Normalize Audio" summary shared by the video and audio endpoints. Tool ids and routes are unchanged, so no API paths or bookmarks break.
2026-07-15 21:55:51 +08:00

4.1 KiB

description, i18n_source_hash, i18n_provenance, i18n_output_hash
description i18n_source_hash i18n_provenance i18n_output_hash
Изменение размера изображений по пикселям, процентам или с режимами вписывания. 53866e8266b8 human dac4c31fbce7

Изменение размера изображения

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

Эндпоинт API

POST /api/v1/tools/image/resize

Принимает multipart form data с файлом изображения и JSON-полем settings.

Параметры

Параметр Тип Обязательный По умолчанию Описание
width integer Нет - Целевая ширина в пикселях (максимум 16383)
height integer Нет - Целевая высота в пикселях (максимум 16383)
fit string Нет "contain" Как изображение вписывается в размеры: contain, cover, fill, inside, outside
withoutEnlargement boolean Нет false Не увеличивать масштаб, если изображение меньше целевого
percentage number Нет - Масштабирование в процентах (например, 50 для половинного размера)

Должен быть указан хотя бы один из width, height или percentage.

Режимы вписывания

  • contain - изменить размер так, чтобы вписаться в размеры, сохраняя соотношение сторон (может оставить пустое пространство)
  • cover - изменить размер так, чтобы покрыть размеры, сохраняя соотношение сторон (может обрезать)
  • fill - растянуть точно под размеры (игнорирует соотношение сторон)
  • inside - как contain, но только уменьшает, никогда не увеличивает
  • outside - как cover, но только уменьшает, никогда не увеличивает

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

curl -X POST http://localhost:1349/api/v1/tools/image/resize \
  -H "Authorization: Bearer si_your-api-key" \
  -F "file=@photo.jpg" \
  -F 'settings={"width": 800, "height": 600, "fit": "contain"}'

Изменение размера в процентах:

curl -X POST http://localhost:1349/api/v1/tools/image/resize \
  -H "Authorization: Bearer si_your-api-key" \
  -F "file=@photo.jpg" \
  -F 'settings={"percentage": 50}'

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

{
  "jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/photo.jpg",
  "originalSize": 2450000,
  "processedSize": 980000
}

Примечания

  • Максимальный размер — 16383 пикселя по любой оси (ограничение Sharp/libvips).
  • Выходной формат совпадает с входным. Входные данные в форматах HEIC, RAW, PSD и SVG автоматически декодируются перед обработкой.
  • Ориентация по EXIF применяется автоматически перед изменением размера.
  • Флаг withoutEnlargement полезен для пакетной обработки, когда некоторые изображения могут уже быть меньше целевого.