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.
4.2 KiB
4.2 KiB
description, i18n_source_hash, i18n_provenance, i18n_output_hash
| description | i18n_source_hash | i18n_provenance | i18n_output_hash |
|---|---|---|---|
| ปรับขนาดรูปภาพตามพิกเซล เปอร์เซ็นต์ หรือด้วยโหมดการปรับพอดี | 53866e8266b8 | human | 6672556356d0 |
ปรับขนาดภาพ
ปรับขนาดรูปภาพโดยระบุมิติพิกเซลที่แน่นอน ตัวคูณสเกลเป็นเปอร์เซ็นต์ หรือโหมดการปรับพอดีที่ควบคุมวิธีที่รูปภาพปรับตัวเข้ากับมิติเป้าหมาย
API Endpoint
POST /api/v1/tools/image/resize
รับ multipart form data พร้อมไฟล์รูปภาพและฟิลด์ JSON settings
Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| width | integer | No | - | ความกว้างเป้าหมายเป็นพิกเซล (สูงสุด 16383) |
| height | integer | No | - | ความสูงเป้าหมายเป็นพิกเซล (สูงสุด 16383) |
| fit | string | No | "contain" |
วิธีที่รูปภาพปรับพอดีกับมิติ: contain, cover, fill, inside, outside |
| withoutEnlargement | boolean | No | false |
ป้องกันการขยายขนาดหากรูปภาพเล็กกว่าเป้าหมาย |
| percentage | number | No | - | ปรับสเกลตามเปอร์เซ็นต์ (เช่น 50 สำหรับครึ่งขนาด) |
ต้องระบุ width, height หรือ percentage อย่างน้อยหนึ่งอย่าง
Fit Modes
- contain - ปรับขนาดให้พอดีภายในมิติ โดยรักษาสัดส่วนภาพ (อาจเหลือพื้นที่ว่าง)
- cover - ปรับขนาดให้ครอบคลุมมิติ โดยรักษาสัดส่วนภาพ (อาจครอป)
- fill - ยืดให้ตรงกับมิติพอดี (ละเว้นสัดส่วนภาพ)
- inside - เหมือน
containแต่ลดขนาดเท่านั้น ไม่ขยาย - outside - เหมือน
coverแต่ลดขนาดเท่านั้น ไม่ขยาย
Example Request
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}'
Example Response
{
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/photo.jpg",
"originalSize": 2450000,
"processedSize": 980000
}
Notes
- มิติสูงสุดคือ 16383 พิกเซลในแต่ละแกน (ขีดจำกัดของ Sharp/libvips)
- รูปแบบเอาต์พุตจะตรงกับรูปแบบอินพุต อินพุต HEIC, RAW, PSD และ SVG จะถูกถอดรหัสโดยอัตโนมัติก่อนการประมวลผล
- การวางแนวตาม EXIF จะถูกใช้โดยอัตโนมัติก่อนการปรับขนาด
- แฟล็ก
withoutEnlargementมีประโยชน์สำหรับการประมวลผลแบบกลุ่มที่รูปภาพบางส่วนอาจเล็กกว่าเป้าหมายอยู่แล้ว