mirror of
https://github.com/snapotter-hq/SnapOtter.git
synced 2026-08-03 07:46:42 +02:00
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.
2.1 KiB
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
qualitymode, lower values produce smaller files with more compression artifacts. A value of 80 is a good default for web use. - In
targetSizemode, 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
qualityparameter entirely.