Files
SnapOtter/apps/docs/th/tools/image/image-to-base64.md
T
SnapOtterandGitHub 4963ab3bbd feat(docs-i18n): translate all documentation into 20 languages
All 181 docs markdown files translated into 20 languages (apps/docs/<locale>/**). Companion to the i18n code PR; admin-merged because the file count exceeds GitHub's per-PR CI trigger limit. Validated by pnpm i18n:check (all surfaces, 0 stale/missing) and a clean all-locale docs build.
2026-07-11 13:52:47 +08:00

6.0 KiB

description, i18n_source_hash, i18n_provenance, i18n_output_hash
description i18n_source_hash i18n_provenance i18n_output_hash
แปลงภาพเป็น base64 data URI เพื่อฝังใน HTML, CSS และอื่นๆ ba4b8f3b4ece human 639591f76c1a

Image to Base64

แปลงภาพหนึ่งภาพหรือมากกว่าเป็นสตริงที่เข้ารหัส base64 และ data URI รองรับการแปลงรูปแบบ การควบคุมคุณภาพ และการปรับขนาดที่เป็นทางเลือก มีประโยชน์สำหรับการฝังภาพโดยตรงใน HTML, CSS, JSON หรือเทมเพลตอีเมล

API Endpoint

POST /api/v1/tools/image/image-to-base64

รับข้อมูลแบบ multipart form data ที่มีไฟล์ภาพหนึ่งไฟล์หรือมากกว่า และฟิลด์ JSON settings ที่เป็นทางเลือก

Parameters

Parameter Type Required Default Description
outputFormat string No "original" แปลงก่อนการเข้ารหัส: original, jpeg, png, webp, avif, jxl
quality number No 80 คุณภาพผลลัพธ์สำหรับรูปแบบ lossy (1 ถึง 100)
maxWidth number No 0 ความกว้างสูงสุดเป็นพิกเซล (0 = ไม่ปรับขนาด จะไม่ขยาย)
maxHeight number No 0 ความสูงสูงสุดเป็นพิกเซล (0 = ไม่ปรับขนาด จะไม่ขยาย)

Example Request

curl -X POST http://localhost:1349/api/v1/tools/image/image-to-base64 \
  -H "Authorization: Bearer si_your-api-key" \
  -F "file=@icon.png" \
  -F 'settings={"outputFormat": "webp", "quality": 80, "maxWidth": 200}'

หลายไฟล์:

curl -X POST http://localhost:1349/api/v1/tools/image/image-to-base64 \
  -H "Authorization: Bearer si_your-api-key" \
  -F "file=@icon1.png" \
  -F "file=@icon2.png" \
  -F "file=@icon3.png" \
  -F 'settings={"outputFormat": "original"}'

Example Response

{
  "results": [
    {
      "filename": "icon.png",
      "mimeType": "image/webp",
      "width": 200,
      "height": 200,
      "originalSize": 45000,
      "encodedSize": 28800,
      "overheadPercent": -36.0,
      "base64": "UklGRlYAAABXRUJQ...",
      "dataUri": "data:image/webp;base64,UklGRlYAAABXRUJQ..."
    }
  ],
  "errors": []
}

Response Fields

Field Type Description
results array ภาพที่แปลงสำเร็จ
errors array ภาพที่ประมวลผลล้มเหลว (พร้อมชื่อไฟล์และข้อความแสดงข้อผิดพลาด)

Result Object

Field Type Description
filename string ชื่อไฟล์เดิม
mimeType string MIME type ของผลลัพธ์ที่เข้ารหัส
width number ความกว้างสุดท้ายเป็นพิกเซล (หลังจากการปรับขนาด)
height number ความสูงสุดท้ายเป็นพิกเซล (หลังจากการปรับขนาด)
originalSize number ขนาดไฟล์เดิมเป็นไบต์
encodedSize number ขนาดของสตริง base64 เป็นไบต์
overheadPercent number เปอร์เซ็นต์ความแตกต่างของขนาดเทียบกับต้นฉบับ (บวก = ใหญ่ขึ้น, ลบ = เล็กลง)
base64 string ข้อมูลภาพที่เข้ารหัส base64 ดิบ
dataUri string data URI ที่สมบูรณ์พร้อมใช้งานในแอตทริบิวต์ src

Notes

  • การเข้ารหัส base64 มักเพิ่มขนาดประมาณ 33% เมื่อเทียบกับไฟล์ไบนารี ฟิลด์ overheadPercent แสดงความแตกต่างที่แท้จริง
  • เมื่อ outputFormat เป็น "original" ไฟล์ HEIC/HEIF จะถูกแปลงเป็น JPEG (เนื่องจากเบราว์เซอร์ไม่สามารถแสดง HEIC ใน data URI ได้)
  • ตัวเลือก maxWidth และ maxHeight ปรับขนาดโดยใช้ fit: inside ร่วมกับ withoutEnlargement ดังนั้นภาพที่เล็กกว่าขนาดที่ระบุจะไม่ถูกขยาย
  • สามารถประมวลผลหลายไฟล์ในคำขอเดียว แต่ละไฟล์ถูกประมวลผลแยกกัน และความล้มเหลวไม่ทำให้ไฟล์อื่นๆ ล้มเหลว
  • ไฟล์ SVG จะถูกส่งผ่านเป็น image/svg+xml โดยไม่มีการเข้ารหัสซ้ำ (เว้นแต่มีการร้องขอการแปลงรูปแบบ)
  • นี่คือ endpoint แบบอ่านอย่างเดียว ไม่ผลิตไฟล์ที่ดาวน์โหลดได้หรือ jobId ข้อมูล base64 จะถูกคืนค่าโดยตรงในเนื้อหาการตอบกลับ