Skip to content
smallPict

จุดเชื่อมต่อ API การปรับแต่งรูปภาพ

เอกสารอ้างอิงทางเทคนิคอย่างเป็นทางการสำหรับจุดเชื่อมต่อหลักในการประมวลผลรูปภาพ POST /v1/optimize

จุดเชื่อมต่อหลักสำหรับการปรับแต่งรูปภาพ การแปลงรูปแบบ การย่อขนาด และการปรับสัดส่วนภาพคือ:

POST https://api.smallpict.app/v1/optimize
(ชื่อแทน: POST https://api.smallpict.app/v1/convert)


รูปแบบคำขอ (JSON Payload)

HTTP
POST /v1/optimize HTTP/1.1Host: api.smallpict.appX-API-Key: sp_sdk_9a8b7c6d5e4f3a2b1c0d9e8f7a6b5c4d3e2f1a0bX-Timestamp: 1716301234X-Signature: 3a9f8b2c4d6e8a0f1b3c5d7e9f2a4b6c8d0e1f3a5b7c9d1e3f5a7b9c1d3e5f7aContent-Type: application/jsonIdempotency-Key: c9b8a7f6-e5d4-4c3b-2a1f-0e9d8c7b6a5f

โครงสร้างเนื้อหาคำขอ

JSON
{  "filename": "hero-banner.jpg",  "mime_type": "image/jpeg",  "filesize": 1654200,  "options": {    "format": "avif",    "quality": 80,    "max_dimension": 1600,    "max_width": 1920,    "max_height": 1080,    "lossless": false,    "strip_metadata": true  }}
ฟิลด์ประเภทจำเป็นคำอธิบาย
filenamestringใช่ชื่อไฟล์ต้นฉบับของรูปภาพ (เช่น banner.png)
mime_typestringใช่ชนิด MIME (เช่น image/jpeg, image/png, image/webp)
filesizeintegerใช่ขนาดไฟล์รวมเป็นไบต์ (ต้อง > 0)
options.formatstringไม่รูปแบบปลายทาง: avif, webp, original / keep, jpg, png (ค่าเริ่มต้น: webp)
options.qualityintegerไม่คุณภาพการบีบอัดระหว่าง 1 ถึง 100 (ค่าเริ่มต้น: 80)
options.max_dimensionintegerไม่ขีดจำกัดสัดส่วนขนาดด้านที่ยาวที่สุดเป็นพิกเซล (เช่น 1600, 1920, 2048, 2560)
options.max_widthintegerไม่ขีดจำกัดความกว้างสูงสุดเป็นพิกเซล
options.max_heightintegerไม่ขีดจำกัดความสูงสูงสุดเป็นพิกเซล
options.losslessbooleanไม่เปิดใช้งานการบีบอัดแบบไม่สูญเสียรายละเอียดระดับพิกเซล (ค่าเริ่มต้น: false)
options.strip_metadatabooleanไม่ตัดข้อมูลเมทาดาต้า EXIF ของกล้องและโพรไฟล์สีออก (ค่าเริ่มต้น: true)

พารามิเตอร์การแปลงรูปภาพโดยตรง

เส้นทางการแปลงข้อมูลบนคลาวด์รองรับพารามิเตอร์คิวรี URL สำหรับการปรับขนาดและแปลงรูปแบบทันที:

GET https://api.smallpict.app/v1/transform?url=...&format=webp&quality=80&max_dimension=1600

  • ?format=avif|webp|original
  • ?quality=1..100
  • ?max_dimension=1600
  • ?max_width=1920
  • ?max_height=1080

การตอบกลับจากเซิร์ฟเวอร์ (200 OK)

เมื่อเริ่มกระบวนการสำเร็จ SmallPict จะส่งคืน URL การอัปโหลดที่มีการลงนามล่วงหน้าอย่างปลอดภัยและรหัสติดตามงาน:

Response · 200 OK
{  "upload_url": "https://upload.smallpict.app/uploads/a1b2c3d4/hero-banner.jpg?signature=...",  "job_id": "job-a1b2c3d4",  "object_key": "uploads/a1b2c3d4/hero-banner.jpg",  "status": "queued"}

อัปโหลดข้อมูลรูปภาพไปยัง upload_url ด้วยคำขอ HTTP PUT จากนั้นตรวจสอบสถานะงาน ใช้ลิงก์อัปโหลดที่ปลอดภัยตามที่ได้รับในการตอบกลับทุกประการ ลิงก์จะหมดอายุในเวลาไม่นานและใช้ได้กับการอัปโหลดนี้เท่านั้น


การตรวจสอบสถานะงาน

ตรวจสอบความคืบหน้าของการแปลงไฟล์ได้ที่:

GET https://api.smallpict.app/v1/optimize/status?job_id=job-a1b2c3d4

การตอบกลับเมื่อเสร็จสมบูรณ์ (200 OK)

Response · 200 OK
{  "job_id": "job-a1b2c3d4",  "status": "completed",  "url": "https://cdn.smallpict.app/opt/hero-banner.avif",  "format": "avif",  "bytes_saved": 1456200,  "savings_percentage": 88.03,  "created_at": "2026-08-23T08:00:00Z",  "updated_at": "2026-08-23T08:00:01Z"}