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.
3.1 KiB
3.1 KiB
description, i18n_source_hash, i18n_provenance, i18n_output_hash
| description | i18n_source_hash | i18n_provenance | i18n_output_hash |
|---|---|---|---|
| ครอปภาพโดยการระบุบริเวณด้วยตำแหน่งและขนาด | 556f37893553 | human | 2ebe7188a137 |
ครอปภาพ
ครอปภาพโดยการกำหนดบริเวณสี่เหลี่ยมโดยใช้ตำแหน่งและขนาด รองรับทั้งหน่วยพิกเซลและเปอร์เซ็นต์
API Endpoint
POST /api/v1/tools/image/crop
รับข้อมูลฟอร์ม multipart พร้อมไฟล์ภาพและฟิลด์ JSON settings
Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| left | number | Yes | - | ระยะออฟเซ็ต X ของบริเวณครอป (จากขอบซ้าย) |
| top | number | Yes | - | ระยะออฟเซ็ต Y ของบริเวณครอป (จากขอบบน) |
| width | number | Yes | - | ความกว้างของบริเวณครอป |
| height | number | Yes | - | ความสูงของบริเวณครอป |
| unit | string | No | "px" |
หน่วยสำหรับค่าต่าง ๆ: px หรือ percent |
Example Request
curl -X POST http://localhost:1349/api/v1/tools/image/crop \
-H "Authorization: Bearer si_your-api-key" \
-F "file=@photo.jpg" \
-F 'settings={"left": 100, "top": 50, "width": 800, "height": 600}'
ครอปโดยใช้ค่าเปอร์เซ็นต์:
curl -X POST http://localhost:1349/api/v1/tools/image/crop \
-H "Authorization: Bearer si_your-api-key" \
-F "file=@photo.jpg" \
-F 'settings={"left": 10, "top": 10, "width": 80, "height": 80, "unit": "percent"}'
Example Response
{
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/photo.jpg",
"originalSize": 2450000,
"processedSize": 1200000
}
Notes
- บริเวณครอปต้องอยู่ภายในขอบเขตของภาพ หากบริเวณขยายเกินภาพ คำขอจะล้มเหลว
- เมื่อใช้หน่วย
percentค่าจะแทนเปอร์เซ็นต์ของขนาดภาพ (เช่นleft: 10หมายถึง 10% จากขอบซ้าย) - รูปแบบเอาต์พุตตรงกับรูปแบบอินพุต
- การจัดวางแนว EXIF จะถูกนำมาใช้อัตโนมัติก่อนการครอป ดังนั้นพิกัดจึงสอดคล้องกับการจัดวางแนวที่ถูกต้องเชิงสายตา