Files
SnapOtter/apps/docs/tools/image/compress.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

2.1 KiB

description
description
Reduce image file size by quality level or to a target file size.

Compress Image

Reduce image file size by specifying a quality level or a target file size in kilobytes. The tool uses iterative binary search to hit size targets accurately.

API Endpoint

POST /api/v1/tools/image/compress

Accepts multipart form data with an image file and a JSON settings field.

Parameters

Parameter Type Required Default Description
mode string No "quality" Compression mode: quality or targetSize
quality number No 80 Quality level (1-100). Used when mode is quality.
targetSizeKb number No - Target file size in kilobytes. Used when mode is targetSize.

Example Request

Compress to quality 60:

curl -X POST http://localhost:1349/api/v1/tools/image/compress \
  -H "Authorization: Bearer si_your-api-key" \
  -F "file=@photo.jpg" \
  -F 'settings={"mode": "quality", "quality": 60}'

Compress to target size of 200 KB:

curl -X POST http://localhost:1349/api/v1/tools/image/compress \
  -H "Authorization: Bearer si_your-api-key" \
  -F "file=@photo.jpg" \
  -F 'settings={"mode": "targetSize", "targetSizeKb": 200}'

Example Response

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

Notes

  • In quality mode, lower values produce smaller files with more compression artifacts. A value of 80 is a good default for web use.
  • In targetSize mode, the engine performs iterative compression to get as close to the target as possible without exceeding it.
  • Output format matches the input format. The compression applies to the format's native encoding (e.g. JPEG quality for JPEG files, WebP quality for WebP files).
  • If the default quality (80) is acceptable, you can omit the quality parameter entirely.