This page was machine-translated. Spotted a mistake?Help improve it.
Skip to content

เอนจินภาพ

แพ็กเกจ @snapotter/image-engine จัดการการทำงานกับภาพที่ไม่ใช่ AI ทั้งหมด มันห่อหุ้ม Sharp และทำงานทั้งหมดในกระบวนการโดยไม่มี dependency ภายนอก

การทำงาน

resize

ปรับขนาดภาพให้เป็นมิติที่กำหนดหรือเป็นเปอร์เซ็นต์

พารามิเตอร์ชนิดคำอธิบาย
widthnumberความกว้างเป้าหมายเป็นพิกเซล
heightnumberความสูงเป้าหมายเป็นพิกเซล
fitstringcover, contain, fill, inside หรือ outside
withoutEnlargementbooleanหากเป็น true จะไม่ขยายภาพที่เล็กกว่า
percentagenumberปรับขนาดตามเปอร์เซ็นต์แทนมิติสัมบูรณ์

คุณสามารถกำหนด width, height หรือทั้งสองอย่าง หากกำหนดเพียงอย่างเดียว อีกอย่างจะถูกคำนวณเพื่อรักษาอัตราส่วนภาพ

crop

ตัดบริเวณรูปสี่เหลี่ยมออกจากภาพ

พารามิเตอร์ชนิดคำอธิบาย
leftnumberระยะเยื้อง X จากขอบซ้าย
topnumberระยะเยื้อง Y จากขอบบน
widthnumberความกว้างของพื้นที่ครอบตัด
heightnumberความสูงของพื้นที่ครอบตัด
unitstringpx (ค่าเริ่มต้น) หรือ percent

rotate

หมุนภาพตามมุมที่กำหนด

พารามิเตอร์ชนิดคำอธิบาย
anglenumberมุมการหมุนเป็นองศา (0-360)
backgroundstringสีเติมสำหรับพื้นที่ที่เปิดเผย (ค่าเริ่มต้น: #000000) ใช้กับมุมที่ไม่ใช่ 90 องศาเท่านั้น

flip

สะท้อนภาพในแนวนอน แนวตั้ง หรือทั้งสองอย่าง อย่างน้อยหนึ่งอย่างต้องเป็น true

พารามิเตอร์ชนิดคำอธิบาย
horizontalbooleanสะท้อนจากซ้ายไปขวา
verticalbooleanสะท้อนจากบนลงล่าง

convert

เปลี่ยนรูปแบบของภาพ

พารามิเตอร์ชนิดคำอธิบาย
formatstringรูปแบบเป้าหมาย: jpg, png, webp, avif, tiff, gif, jxl, heic, heif, bmp, ico, jp2, qoi
qualitynumberคุณภาพการบีบอัด (1-100 ใช้กับรูปแบบที่สูญเสียข้อมูล)

เจ็ดรูปแบบแรก (jpg ถึง jxl) ถูกเข้ารหัสโดย Sharp ในกระบวนการ รูปแบบที่เหลือใช้ตัวเข้ารหัสภายนอกที่ชั้น API: heic/heif ผ่าน heif-enc, bmp/ico ผ่าน ImageMagick, jp2 ผ่าน opj_compress และ qoi ผ่าน codec แบบ TypeScript ในโค้ด

compress

ลดขนาดไฟล์โดยยังคงรูปแบบเดิม

พารามิเตอร์ชนิดคำอธิบาย
qualitynumberคุณภาพเป้าหมาย (1-100)
targetSizeBytesnumberขนาดไฟล์เป้าหมายแบบเสริมเป็นไบต์
formatstringการแทนที่รูปแบบแบบเสริม

strip-metadata

ลบเมทาดาทา EXIF, IPTC, XMP และ ICC ออกจากภาพ หากไม่มีพารามิเตอร์ (หรือ stripAll: true) จะลบทุกอย่าง ส่งแฟล็กแต่ละตัวเพื่อการลบแบบเลือกได้

พารามิเตอร์ชนิดคำอธิบาย
stripAllbooleanลบเมทาดาทาทั้งหมด (ค่าเริ่มต้นเมื่อไม่ได้ตั้งแฟล็กใด ๆ)
stripExifbooleanลบข้อมูล EXIF (รวมถึง GPS หาก stripGps ไม่ได้ตั้งแยกต่างหาก)
stripGpsbooleanลบข้อมูลตำแหน่ง GPS
stripIccbooleanลบโปรไฟล์สี ICC
stripXmpbooleanลบเมทาดาทา XMP

การปรับสี

การทำงานเหล่านี้ปรับเปลี่ยนคุณสมบัติสีของภาพ แต่ละอย่างรับค่าตัวเลขเดียว

การทำงานพารามิเตอร์ช่วงคำอธิบาย
brightnessvalue-100 ถึง 100ปรับความสว่าง
contrastvalue-100 ถึง 100ปรับคอนทราสต์
saturationvalue-100 ถึง 100ปรับความอิ่มตัวของสี

ฟิลเตอร์สี

ฟิลเตอร์เหล่านี้ใช้การแปลงสีแบบตายตัว ไม่รับพารามิเตอร์

การทำงานคำอธิบาย
grayscaleแปลงเป็นโทนสีเทา
sepiaใช้โทนสีซีเปีย
invertกลับสีทั้งหมด

ช่องสี

ปรับช่องสี RGB แต่ละช่อง ค่าเป็นตัวคูณโดยที่ 100 = ไม่เปลี่ยนแปลง

พารามิเตอร์ชนิดคำอธิบาย
rednumberตัวคูณช่องสีแดง (0 ถึง 200, 100 = ไม่เปลี่ยนแปลง)
greennumberตัวคูณช่องสีเขียว (0 ถึง 200, 100 = ไม่เปลี่ยนแปลง)
bluenumberตัวคูณช่องสีน้ำเงิน (0 ถึง 200, 100 = ไม่เปลี่ยนแปลง)

sharpen

การเพิ่มความคมชัดอย่างง่ายที่ควบคุมด้วยค่าเดียว

พารามิเตอร์ชนิดคำอธิบาย
valuenumberความเข้มของการเพิ่มความคมชัด (0 ถึง 100) แมปไปยังค่า Gaussian sigma ที่ 0.5-10

sharpen-advanced

การเพิ่มความคมชัดขั้นสูงพร้อมสามวิธีที่เลือกได้และการลดสัญญาณรบกวนล่วงหน้าแบบเสริม

พารามิเตอร์ชนิดคำอธิบาย
methodstringadaptive, unsharp-mask หรือ high-pass
sigmanumberรัศมี Gaussian blur, 0.5-10 (ปรับตัวได้)
m1numberการเพิ่มความคมชัดในพื้นที่เรียบ, 0-10 (ปรับตัวได้)
m2numberการเพิ่มความคมชัดในพื้นที่ที่มีพื้นผิว, 0-20 (ปรับตัวได้)
x1numberเกณฑ์พื้นที่เรียบ/หยัก, 0-10 (ปรับตัวได้)
y2numberการเพิ่มความสว่างสูงสุด (จำกัด halo), 0-50 (ปรับตัวได้)
y3numberการลดความสว่างสูงสุด (จำกัด halo), 0-50 (ปรับตัวได้)
amountnumberเปอร์เซ็นต์ความเข้ม, 0-500 (unsharp-mask)
radiusnumberรัศมีการเบลอ, 0.1-5.0 (unsharp-mask)
thresholdnumberความสว่างขอบต่ำสุด, 0-255 (unsharp-mask)
strengthnumberความเข้มของการผสม, 0-100 (high-pass)
kernelSizenumber3 หรือ 5 สำหรับ kernel 3x3 / 5x5 (high-pass)
denoisestringการลดสัญญาณรบกวนล่วงหน้า: off, light, medium หรือ strong

พารามิเตอร์เป็นแบบเฉพาะวิธี ให้ระบุเฉพาะพารามิเตอร์ที่เกี่ยวข้องกับวิธีที่เลือกเท่านั้น

color-blindness

จำลองภาวะบกพร่องในการมองเห็นสีโดยใช้เมทริกซ์การรวมสีขนาด 3x3

พารามิเตอร์ชนิดคำอธิบาย
typestringหนึ่งใน: protanopia, deuteranopia, tritanopia, protanomaly, deuteranomaly, tritanomaly, achromatopsia, blueConeMonochromacy

edit-metadata

เขียนหรือลบฟิลด์เมทาดาทา EXIF/IPTC แต่ละฟิลด์โดยไม่ต้องลบทั้งบล็อก

พารามิเตอร์ชนิดคำอธิบาย
artiststringแท็ก EXIF Artist
copyrightstringแท็ก EXIF Copyright
imageDescriptionstringแท็ก EXIF ImageDescription
softwarestringแท็ก EXIF Software
dateTimestringแท็ก EXIF DateTime
dateTimeOriginalstringแท็ก EXIF DateTimeOriginal
clearGpsbooleanลบแท็ก GPS ทั้งหมด
fieldsToRemovestring[]รายการชื่อฟิลด์ EXIF ที่จะลบ

พารามิเตอร์ทั้งหมดเป็นแบบเสริม ฟิลด์ที่ระบุใน fieldsToRemove จะถูกลบออกจากบล็อก EXIF ที่มีอยู่ ฟิลด์ที่ตั้งค่าผ่านพารามิเตอร์ที่มีชื่อจะถูกเขียน (หรือเขียนทับ) คีย์แบบไบนารี/ไม่ปลอดภัยอย่าง MakerNote จะถูกละเว้นโดยไม่แจ้ง

การตรวจจับรูปแบบ

เอนจินตรวจจับรูปแบบอินพุตโดยอัตโนมัติจากส่วนหัวของไฟล์ ไม่ใช่แค่นามสกุลไฟล์ นี่หมายความว่าไฟล์ .jpg ที่จริง ๆ เป็น PNG จะถูกจัดการอย่างถูกต้อง การตรวจจับใช้แนวทางหลายชั้น: magic bytes ก่อน จากนั้นใช้นามสกุลไฟล์เป็น fallback

SnapOtter รองรับ รูปแบบอินพุตกว่า 55 รูปแบบ และ รูปแบบผลลัพธ์ 13 รูปแบบ รวมถึงรูปแบบ RAW จากกล้อง 23 รูปแบบจากกว่า 20 แบรนด์ รูปแบบมืออาชีพ (PSD, EPS, OpenEXR, HDR) codec สมัยใหม่ (JPEG XL, AVIF, HEIC, QOI, JPEG 2000) และรูปแบบทางวิทยาศาสตร์/เกม (FITS, DDS) การถอดรหัสจัดการโดย Sharp โดยตรงเมื่อทำได้ พร้อม fallback อัตโนมัติไปยัง ImageMagick, LibRaw และตัวถอดรหัส CLI เฉพาะทาง

ดูหน้า Supported Formats สำหรับรายการทั้งหมด

การสกัดเมทาดาทา

เครื่องมือ info คืนเมทาดาทาของภาพ ดู Image Info สำหรับเอกสารอ้างอิงฟิลด์ทั้งหมด

json
{
  "filename": "photo.jpg",
  "fileSize": 2450000,
  "width": 4032,
  "height": 3024,
  "format": "jpeg",
  "channels": 3,
  "hasAlpha": false,
  "colorSpace": "srgb",
  "density": 72,
  "isProgressive": false,
  "hasExif": true,
  "hasIcc": true,
  "hasXmp": false,
  "bitDepth": "8",
  "pages": 1,
  "histogram": [
    { "channel": "red", "min": 0, "max": 255, "mean": 128.45, "stdev": 52.31 },
    { "channel": "green", "min": 2, "max": 253, "mean": 115.22, "stdev": 48.76 },
    { "channel": "blue", "min": 0, "max": 250, "mean": 102.89, "stdev": 55.14 }
  ]
}