API ของเซิร์ฟเวอร์

คำขอ API ทั้งหมดเป็นคำขอ HTTP แบบมาตรฐานถึง URL ในรูปแบบ REST ผลตอบรับจะเป็น JSON หรือภาพ (เมื่อดึงผลลัพธ์)

การรับรองความถูกต้อง

API ใช้ การรับรองความถูกต้องเบื้องต้นของการเข้าถึง HTTP แบบมาตรฐาน คำร้องขอทั้งหมดถึง API จำเป็นที่จะต้องมีข้อมูลประจำตัว API ของคุณ โดยมี API Id เป็นผู้ใช้ และคีย์ API เป็นรหัสผ่าน โปรดทราบว่า ClippingMagic.js ใช้เฉพาะ API Id ของคุณ เพื่อที่จะไม่เปิดเผยคีย์ API ของคุณต่อผู้ใช้ของคุณ

การรักษาความปลอดภัย

คำขอทั้งหมดต้องกระทำผ่าน HTTPS และคุณต้องรับรองความถูกต้องของคำขอทั้งหมด

ไลบรารีไคลเอ็นต์ http ของคุณต้องรองรับ การบ่งชี้ชื่อเซิร์ฟเวอร์ (SNI) จึงจะส่งคำขอได้สำเร็จ หากคุณได้รับข้อผิดพลาดแฮนด์เชกที่แปลกประหลาด ก็น่าจะเป็นเพราะเหตุนี้มากที่สุด

แบ็กเอนด์ เทียบกับ ฟร้อนท์เอนด์

โปรดทราบว่าการดำเนินการอัปโหลดและดาวน์โหลดทั้งหมดจะเกิดขึ้นทางฝั่งแบ็กเอนด์ แต่การดำเนินการตรวจสอบและแก้ไขทั้งหมดจะเกิดขึ้นในตัวแก้ไขแบบอัจฉริยะ

การแบ่งแบบนี้ช่วยป้องกันคีย์ API ของคุณ ขณะเดียวกันกับที่มอบประสบการณ์แบบไร้ที่ติแก่ผู้ใช้ปลายทางที่เว็บไซต์ของคุณ

การจำกัดอัตรา

การใช้งาน API มีอัตราที่จำกัด โดยเผื่อค่าไว้กว้างและไม่มีขอบเขตบนที่เคร่งครัดเกินกว่าเครดิต API ของคุณ

ในระหว่างการดำเนินการที่ผู้ใช้ปลายทางกระทำตามปกตินั้น มีโอกาสน้อยที่คุณจะประสบกับอัตราที่จำกัด เพราะการใช้งานมีแนวโน้มที่จะขึ้น ๆ ลง ๆ ในลักษณะที่บริการจัดการได้อย่างเรียบร้อย

อย่างไรก็ตาม ในกรณีของชุดงาน เราขอแนะนำให้เริ่มต้นด้วยชุดกิจกรรมสูงสุด 5 ชุด โดยเพิ่มใหม่ 1 ชุดทุก ๆ 5 นาที จนกว่าคุณจะไปถึงระดับการทำงานแบบขนานตามที่ต้องการ กรุณาแจ้งให้เราทราบก่อนที่คุณจะเริ่มงาน หากต้องการชุดกิจกรรมมากกว่า 100 ชุดพร้อมกัน

หากคุณส่งคำขอมากเกินไป คุณจะเริ่มได้รับผลตอบกลับ 429 Too Many Requests เมื่อเกิดกรณีเช่นนี้ขึ้น คุณควรปรับใช้กลยุทธ์สุ่มรอเวลาแบบเส้นตรง : ในผลตอบกลับดังกล่าวครั้งแรก รอ 5 วินาที ก่อนส่งคำขอถัดไป ในผลตอบกลับ 429 ที่ต่อเนื่องกันครั้งที่สอง รอ 2*5=10 วินาที ก่อนส่งคำขอถัดไป ส่วนครั้งที่สาม จะรอ 3*5=15 วินาที ฯลฯ

คุณสามารถรีเซ็ตตัวนับการสุ่มรอเวลาหลังจากคำขอประสบผลสำเร็จ และคุณควรนำการสุ่มรอเวลาไปใช้กับแต่ละชุดกิจกรรม (กล่าวคือ ชุดกิจกรรมควรทำหน้าที่โดยอิสระไม่ขึ้นต่อกันและกัน)

ออบเจ็กต์ JSON ของข้อผิดพลาด

เราใช้สถานะ HTTP แบบปกติ เพื่อบ่งชี้ความสำเร็จหรือความล้มเหลวของคำขอ API และรวมถึงรายละเอียดข้อผิดพลาดที่สำคัญในออบเจ็กต์ JSON ที่ผิดพลาดและถูกส่งคืน

เราพยายามอยู่เสมอที่จะส่งคืนออบเจ็กต์ JSON ที่ผิดพลาดพร้อมด้วยคำขอใด ๆ ที่เป็นปัญหา อย่างไรก็ตาม ในทางทฤษฎี มีความเป็นไปได้เสมอที่เซิร์ฟเวอร์จะเกิดความล้มเหลวภายใน ซึ่งนำไปสู่ผลตอบกลับข้อผิดพลาดที่ไม่ใช่ JSON

ลักษณะเฉพาะ

statusในที่นี้ แสดงสถานะ HTTP ของผลตอบกลับซ้ำอีก เพื่อช่วยในการแก้จุดบกพร่อง
codeรหัสข้อผิดพลาดภายใน Clipping Magic
messageข้อความแสดงข้อผิดพลาดที่มนุษย์สามารถอ่านได้ มีจุดประสงค์เพื่อช่วยในการแก้จุดบกพร่อง

หากสถานะ HTTP สำหรับคำขอของคุณคือ 200 แสดงว่าจะไม่มีการส่งคืนออบเจ็กต์ JSON ที่ผิดพลาด และคุณสามารถสรุปได้ว่า คำขอนั้นสื่อสารได้สำเร็จในวงกว้าง

ไลบรารีไคลเอ็นต์ HTTP บางส่วนทำให้เกิดข้อยกเว้นสำหรับสถานะ HTTP ในช่วง 400-599 คุณจำเป็นจะต้องตรวจจับข้อยกเว้นเหล่านั้นและจัดการตามความเหมาะสม

HTTP Statusความหมาย
200-299

ความสำเร็จ

400-499

มีปัญหาเกิดขึ้นกับข้อมูลที่ให้ไว้ในคำขอ (เช่น พารามิเตอร์ขาดหายไป) กรุณาตรวจสอบข้อความแสดงข้อผิดพลาดเพื่อคิดหาวิธีที่จะจัดการแก้ไข

500-599

เกิดข้อผิดพลาดภายใน Clipping Magic กรุณารอสักครู่แล้วลองใหม่อีกครั้ง หากปัญหายังคงมีอยู่ กรุณาส่งอีเมลถึงเรา

ตัวอย่างผลตอบกลับข้อผิดพลาด

{
  "error" : {
    "status" : 400,
    "code" : 1006,
    "message" : "Failed to read the supplied image. "
  }
}

ออบเจ็กต์ JSON ของภาพ

การบันทึกภาพจะแสดงในรูปแบบเดียวกันกับออบเจ็กต์ JSON ซึ่งส่งคืนโดยการดำเนินการหลายอย่างของ API

ลักษณะเฉพาะ

id

รหัสเฉพาะภาพ จำเป็นต้องอนุญาตให้ผู้ใช้แก้ไขภาพและเพื่อดาวน์โหลดผลลัพธ์

secret

รหัสลับที่จำเป็นต้องใช้เพื่อแก้ไขภาพนี้ด้วย ClippingMagic.js

resultRevision

ตัวเลขจำนวนเต็มที่ระบุการปรับปรุงแก้ไขล่าสุดที่มีให้ดาวน์โหลดได้ (0 = ยังไม่มีผลลัพธ์ให้ใช้ได้)

อนุญาตให้คุณตัดสินว่า ภาพนี้มีผลลัพธ์ที่ใหม่กว่าที่คุณได้ดาวน์โหลดไว้ก่อนหน้านี้แล้วหรือไม่

originalFilename

สตริงที่มีชื่อไฟล์ที่ให้ไว้เมื่ออัปโหลดภาพต้นฉบับ

test

true หมายความว่า นี่เป็นภาพทดสอบ ซึ่งจะดำเนินการได้ฟรี แต่ผลลัพธ์จะมีลายน้ำ

false หมายความว่า นี่เป็นภาพสำหรับออกสื่อ ซึ่งต้องจ่ายเครดิตเพื่อดำเนินการ แต่ผลลัพธ์จะไม่มีลายน้ำ

ตัวอย่าง

{
  "id" : 2345,
  "secret" : "image_secret",
  "resultRevision" : 0,
  "originalFilename" : "image.jpg",
  "imageCategoryUser" : "Photo",
  "imageCategoryAi" : "Photo",
  "test" : false
}

อัปโหลด POST https://clippingmagic.com/api/v1/images

ในการอัปโหลดภาพ คุณจะทำการอัปโหลดไฟล์ HTTP POST แบบมาตรฐาน แบ็กเอนด์จะต้องเรียกจุดสิ้นสุดนี้ ส่วนจาวาสคริปต์ที่หน้าเว็บของคุณจะเรียกไม่ได้ อย่าลืมว่า ประเภท-เนื้อหา ต้องเป็น multipart/form-data เมื่ออัปโหลดไฟล์ไบนารี

พารามิเตอร์

ต้องป้อนภาพอินพุตในแบบใดแบบหนึ่งดังนี้ :

image
ไบนารี

ไฟล์ไบนารี

image.base64
สตริง

สตริงที่เข้ารหัสแบบ base64 ขนาดของสตริงต้องไม่เกิน 1 เมกะไบต์ เท่านั้น

image.url
สตริง

URL ที่จะนำมาใช้

ต้องเป็นไฟล์ .bmp, .gif, .jpeg, .png, หรือ .tiff

ขนาดสูงสุดของภาพที่จะอัปโหลด (= ความกว้าง × ความสูง) คือ 33,554,432 พิกเซล, ซึ่งจะลดขนาดลงเป็น 4,194,404 พิกเซล เว้นแต่จะถูกแทนที่โดย maxPixels ข้างล่าง กรุณาลดขนาดภาพของคุณตามที่ระบุไว้ข้างต้นหรือเล็กกว่าก่อนการอัปโหลด

test
บูลีน
true, false

ส่ง true เพื่อระบุว่า นี่คือภาพทดสอบ

ละเว้นหรือส่ง false สำหรับภาพที่จะออกสื่อ

ภาพทดสอบจะดำเนินการได้ฟรี แต่ผลลัพธ์จะใส่ลายน้ำแทรกไว้

format
Enum
json, result, clipping_path_svg, alpha_mask_png

format=json (ค่าเริ่มต้น): ไม่มีการสร้างผลลัพธ์การคลิปอัตโนมัติและจะส่งคืนออบเจ็กต์ JSON ของภาพ จะใช้เมื่อมีบุคลากรที่เป็นผู้ปฏิบัติงานคอยตรวจสอบ และอาจปรับแต่งผลลัพธ์โดยใช้ ClippingMagic.js

format=result สร้างและเรียกใช้ผลลัพธ์การคลิปอัตโนมัติ

format=clipping_path_svg จะสร้างผลลัพธ์การคลิปอัตโนมัติและเรียกใช้เส้นทางการคลิป (SVG)

format=alpha_mask_png จะสร้างผลลัพธ์การคลิปโดยอัตโนมัติและเรียกใช้มาส์กแอลฟา (PNG) มาส์กแอลฟามีขนาดเดียวกันกับภาพที่ป้อนเข้าไป เมื่อนำไปใช้กับภาพที่ป้อนเข้าไปจะยังไม่สร้างผลลัพธ์ให้คุณ เพราะต้องให้ ตัวกันขอบและตัวลบเฮโล มาช่วยปรับสีตามขอบเขตก่อน

id และ secret จะถูกส่งคืนในส่วนหัวของ x-amz-meta-id และ x-amz-meta-secret เมื่อเรียกใช้ผลลัพธ์ที่ไม่ใช่ JSON อย่าลืมจัดเก็บรหัสเหล่านี้ไว้ เพื่อที่คุณจะตรวจสอบและแก้ไขผลลัพธ์ของคุณโดยใช้ ClippingMagic.js ได้ ดูส่วนหัวทั้งหมดที่รวมอยู่ในการตอบกลับ

การเรียกใช้ออบเจ็กต์ JSON ของภาพจะไม่เรียกเก็บเงินจากบัญชีของคุณ คุณจะต้องชำระเฉพาะเมื่อดาวน์โหลดผลลัพธ์สำหรับออกสื่อเท่านั้น

maxPixels
จำนวนเต็ม
1000000 ถึง 26214400

เปลี่ยนขนาดสูงสุดของภาพ (= ความกว้าง × ความสูง) จะใช้เมื่อปรับขนาดภาพหลังจากการอัปโหลด

ค่าเริ่มต้น : 4,194,404 พิกเซล

background.color
#RRGGBB
#0055FF

ละเว้นที่จะใช้พื้นหลังโปร่งใส

อย่าลืมใส่ '#'

กำหนดค่า พารามิเตอร์การประมวลผล:

processing.mode
Enum
auto, photo, graphics, scan

ควบคุม โหมดการประมวลผล ที่ใช้กับภาพของคุณ

ค่าเริ่มต้น : auto

processing.autoClip
บูลีน
true, false

เปิดใช้งาน (ค่าเริ่มต้น) หรือปิดใช้งานการคลิปอัตโนมัติเมื่อแก้ไขภาพในเว็บแอป

ปิดใช้งานหากต้องการที่จะอัปโหลดภาพผ่านทาง API จากนั้นจึงคลิปบางอย่างแบบอิสระโดยเลือกสิ่งที่ไม่ใช่พื้นหน้าที่เห็นชัดเจน (ถ้ามี)

ค่าเริ่มต้น : true

processing.autoHair
บูลีน
true, false

เปิดใช้งาน (ค่าเริ่มต้น) หรือปิดใช้งานการใช้งานมาส์กเส้นผมโดยอัตโนมัติ

ค่าเริ่มต้น : true

processing.allowGraphicsMode
บูลีน
true, false

เปิดใช้งาน (ค่าเริ่มต้น) หรือปิดใช้งานการเลือกโหมดกราฟิกโดยอัตโนมัติ

การตั้งค่านี้จะไม่ส่งผลเมื่อ format=json

ค่าเริ่มต้น : true

processing.allowScanMode
บูลีน
true, false

เปิดใช้งาน (ค่าเริ่มต้น) หรือปิดใช้งานการเลือกโหมดสแกนโดยอัตโนมัติ

การตั้งค่านี้จะไม่ส่งผลเมื่อ format=json

ค่าเริ่มต้น : true

กำหนดค่า ระดับสี:

colors.auto
บูลีน
true, false

ปรับระดับสีโดยอัตโนมัติเพื่อเพิ่มความคมชัด

ค่าเริ่มต้น : false

colors.brightness
จำนวนเต็ม
-100 ถึง 100

ปรับความสว่างของภาพเอาต์พุต

ค่าเริ่มต้น : 0

colors.shadows
จำนวนเต็ม
-100 ถึง 100

ปรับเงาของภาพเอาต์พุต ค่าบวกจะให้เงาที่เข้มขึ้น

ค่าเริ่มต้น : 0

colors.highlights
จำนวนเต็ม
-100 ถึง 100

ปรับไฮไลต์ของภาพเอาต์พุต ค่าบวกจะให้ไฮไลต์ที่อ่อนลง

ค่าเริ่มต้น : 0

colors.temperature
จำนวนเต็ม
-100 ถึง 100

ปรับอุณหภูมิของสีให้ภาพเอาต์พุต ค่าบวกจะให้สีที่อุ่นขึ้น

ค่าเริ่มต้น : 0

colors.saturation
จำนวนเต็ม
-100 ถึง 100

ปรับความอิ่มตัวของสีให้ภาพเอาต์พุต ค่าบวกจะเพิ่มความอิ่มตัวมากขึ้น

ค่าเริ่มต้น : 0

กำหนดค่าการลบสีออกจากพื้นหลังที่เป็น สีเพี้ยนบนพื้นหน้า เช่นเดียวกับฉากเขียว :

colorCast.auto
บูลีน
true, false

ตัดสินสีพื้นหลังโดยอัตโนมัติเพื่อลบออกจากพื้นหน้า

ค่าเริ่มต้น : false

colorCast.color
#RRGGBB
#A84400

สีพื้นหลังที่ระบุไว้ด้วยตัวเองเพื่อลบออกจากพื้นหน้า

ละเว้นเพื่อตรวจจับโดยอัตโนมัติ

colorCast.foregroundGuard
ลอย
0.0 ถึง 20.0

ค่าที่มากกว่าจะช่วยลดผลกระทบที่การลบสีเพี้ยนมีต่อสีพื้นหน้าแท้จริงที่คล้ายคลึงกับสีเพี้ยน แต่มีความอิ่มตัวมากกว่าสีที่จะลบออก

ค่าเริ่มต้น : 4.0

กำหนดค่า สมดุลสีขาว:

whiteBalance.auto
บูลีน
true, false

กำหนดสีอ้างอิงโดยอัตโนมัติเพื่อใช้ในการปรับสมดุลสีขาว

ค่าเริ่มต้น : false

whiteBalance.color
#RRGGBB
#968386

สีของสมดุลสีขาวที่ระบุด้วยตัวเอง

ละเว้นเพื่อตรวจจับโดยอัตโนมัติ

กำหนดค่า การปรับแต่งขั้นสุดท้าย:

effects.dropShadow
[xOffsetPx:int] [yOffsetPx:int] [blurRadiusPx:int, 0 to 75] [opacity:float, 0 to 1]
30 30 25 0.75

เพิ่มเอฟเฟกต์ สร้างเงา ให้แก่ผลลัพธ์ที่คลิปแล้ว

effects.reflection
[yOffsetPx:int, 0 to 400] [heightPx:int, 0 to 800] [opacity:float, 0 to 1]
0 200 0.5

เพิ่มเอฟเฟกต์ เงาสะท้อน ให้แก่ผลลัพธ์ที่คลิปแล้ว

กำหนดค่า พารามิเตอร์ขอบ:

edges.corners
บูลีน
true, false

ใช้ (ค่าเริ่มต้น) หรือปิดใช้งาน ตัวป้องกันมุม

edges.smoothing
Enum
smart, fixed

ใช้ smart (ค่าเริ่มต้น) หรือ fixed การปรับให้เรียบ

edges.smoothingLevel
ลอย
0.0 ถึง 5.0

กำหนดค่าให้ปริมาณ การปรับให้เรียบ ที่ใช้กับผลลัพธ์

ค่าเริ่มต้น 1.0

edges.feathering
Enum
fixed, auto, local

ใช้ auto (ค่าเริ่มต้น), local, หรือ fixed การปรับให้ฟุ้งกระจาย

edges.featheringRadiusPx
ลอย
0.0 ถึง 6.0

กำหนดค่าให้ปริมาณ การปรับให้เรียบ ที่ใช้กับผลลัพธ์

ค่าเริ่มต้น : 1.0

edges.offsetPx
ลอย
0.0 ถึง 10.0

กำหนดค่าให้ ออฟเซ็ตขอบเขต ที่ใช้กับผลลัพธ์

ค่าเริ่มต้น : 0.0

ใช้ผลลัพธ์ที่สมมาตรพอดีกับผลลัพธ์

fit.toResult
บูลีน
true, false

เปิดหรือปิด ผลลัพธ์ที่สมมาตรพอดี (ค่าเริ่มต้น)

หากปิดอยู่ ก็จะละเว้นพารามิเตอร์ที่เหลือในส่วนนี้โดยสมบูรณ์

fit.paddingPercent
ลอย
0.0 ถึง 35.0

ช่องว่างภายในที่จะใช้รอบ ๆ ผลลัพธ์ที่ปรับให้สมมาตรพอดี เป็นร้อยละของขนาดผลลัพธ์

ค่าเริ่มต้น : 5.0

fit.paddingPixels
จำนวนเต็ม
0 ถึง 250

ช่องว่างภายในเป็นพิกเซลที่จะใช้วางรอบ ๆ ผลลัพธ์ที่ปรับให้สมมาตรพอดี

หากไม่ระบุไว้ จะใช้ค่าช่องว่างภายในเป็นร้อยละแทน

fit.objectSize
Enum
small, medium, large

คุณสามารถระบุขนาดที่กำหนดเองสำหรับออปเจ็กต์ของคุณ คุณสมบัตินี้มีประโยชน์ต่ออีคอมเมิร์ซ ซึ่งคุณอาจต้องการแสดงให้ผู้ซื้อสินค้าทราบถึงขนาดของผลิตภัณฑ์อย่างคร่าว ๆ เมื่อเทียบกับผลิตภัณฑ์อื่น

ค่าเริ่มต้น : large (= ไม่มีการปรับขนาด)

fit.verticalAlignment
Enum
top, middle, bottom

ระบุว่าควรจัดแนวผลลัพธ์ของคุณมากน้อยเพียงใดหากมีช่องว่างแนวตั้งส่วนเกิน

นอกจากนี้ยังนำไปใช้เมื่อกระจายช่องว่างส่วนเกิน เนื่องจากการบังคับใช้อัตราส่วนกว้างยาวหรือขนาดที่เป็นเป้าหมาย กรุณาอ่านเนื้อหาข้างล่าง

ค่าเริ่มต้น : middle

fit.shadows
Enum
ignore, pad, tight

คุณสามารถละเว้นเงาได้ หรือวางช่องว่างขนาบทั้งสองข้างให้เท่า ๆ กัน เพื่อให้เหมาะสมกับเงา หรือวางให้ชิดเพื่อเพิ่มช่องว่างเฉพาะจุดที่จำเป็นเท่านั้น จะได้ไม่ตัดเงาออก

ค่าเริ่มต้น : pad

fit.rotationDeg
ลอย
-360.0 ถึง 360.0

หมุนภาพ ค่าบวกเป็นค่าทวนเข็มนาฬิกา

ค่าเริ่มต้น : 0

ควบคุม ขนาดผลลัพธ์และอัตราส่วนกว้างยาว:

result.aspectRatio
[width:float, >0]:[height:float, >0]
4:3

ตรวจสอบให้แน่ใจว่า ผลลัพธ์มีอัตราส่วนกว้างยาวที่ระบุไว้

fit.verticalAlignment ควบคุมว่ามีการกระจายช่องว่างแนวตั้งส่วนเกินอย่างไร

ค่าเริ่มต้น : ไม่นำไปใช้

result.targetSize
[width:int, >0] [height:int, >0]
400 300

ตรวจสอบให้แน่ใจว่า ผลลัพธ์มีขนาดที่ระบุไว้

fit.verticalAlignment ควบคุมว่ามีการกระจายช่องว่างแนวตั้งส่วนเกินอย่างไร

ค่าเริ่มต้น : ไม่นำไปใช้

result.allowEnlarging
บูลีน
true, false

ควบคุมว่าจะอนุญาตให้ผลลัพธ์มีขนาดใหญ่กว่าภาพอินพุตหรือไม่

ค่าเริ่มต้น : false

ควบคุม เอาต์พุตที่มีให้เลือก:

output.dpi
จำนวนเต็ม
1 ถึง 4000

กำหนดข้อมูล DPI ที่แทรกอยู่ในผลลัพธ์

หากปรับผลลัพธ์ให้เหมาะสมกับการแสดงบนเว็บ จะไม่มีข้อมูล DPI รวมอยู่ด้วย

ค่าเริ่มต้น : 72

output.colorSpace
Enum
sRGB, AdobeRGB, AppleRGB, ColorMatchRGB

กำหนดข้อมูลพื้นที่สีที่แทรกอยู่ในผลลัพธ์

หากปรับผลลัพธ์ให้เหมาะสมกับการแสดงบนเว็บ จะไม่มีข้อมูลพื้นที่สีรวมอยู่ด้วย

ค่าเริ่มต้น : sRGB

output.jpegQuality
จำนวนเต็ม
1 ถึง 100

กำหนดค่าให้การตั้งค่าคุณภาพที่ใช้เมื่อผลิตผลลัพธ์ในรูป JPEG

ค่าเริ่มต้น : 75

output.pngOptimization
Enum
none, lossless, lossy

กำหนดค่าในการปรับให้เหมาะสมกับเว็บสำหรับผลลัพธ์ในรูป PNG

ค่าเริ่มต้น : lossless

output.jpegOptimization
Enum
none, enabled

กำหนดค่าในการปรับให้เหมาะสมกับเว็บสำหรับผลลัพธ์ในรูป JPEG

ค่าเริ่มต้น : enabled

output.opaqueFileFormat
Enum
jpeg, png

กำหนดค่าของรูปแบบไฟล์เพื่อใช้สำหรับผลลัพธ์ที่ทึบแสง

ค่าเริ่มต้น : jpeg

คุณสามารถอัปโหลดภาพในโหมดทดสอบได้โดยไม่ต้องสมัครเป็นสมาชิก แม้ว่าการอัปโหลดไม่ต้องใช้เครดิตก็ตาม แต่คุณจำเป็นต้องสมัครเป็นสมาชิก API ไว้อย่างถูกต้อง จึงจะสามารถใช้ API เพื่ออัปโหลดภาพสำหรับออกสื่อได้

ลองใช้ดู


รูปแบบ : '#RRGGBB'



รูปแบบ : '#RRGGBB'

รูปแบบ : '#RRGGBB'


รูปแบบ : '[xOffsetPx:int] [yOffsetPx:int] [blurRadiusPx:int, 0 to 75] [opacity:float, 0 to 1]'
ตัวอย่าง : 30 30 25 0.75

รูปแบบ : '[yOffsetPx:int, 0 to 400] [heightPx:int, 0 to 800] [opacity:float, 0 to 1]'
ตัวอย่าง : 0 200 0.5




รูปแบบ : '[width:float, >0]:[height:float, >0]'
ตัวอย่าง : 4:3

รูปแบบ : '[width:int, >0] [height:int, >0]'
ตัวอย่าง : 400 300

Username = API Id, Password = API Key

cURL

$ curl "https://clippingmagic.com/api/v1/images" \
 -u 123:[secret] \ 
 -F 'image=@example.jpg' \ 
 -F 'test=true'

หาก 'example.jpg' มีอยู่จริง ให้ทดแทนตามความเหมาะสม สามารถเลือกใช้บรรทัดที่มี 'test=true' ได้

ตัวอย่างผลตอบกลับ

{
  "image" : {
    "id" : 2345,
    "secret" : "image_secret",
    "resultRevision" : 0,
    "originalFilename" : "image.jpg",
    "imageCategoryUser" : "Photo",
    "imageCategoryAi" : "Photo",
    "test" : false
  }
}

ดาวน์โหลด GET https://clippingmagic.com/api/v1/images/[imageId]

ในการดาวน์โหลดผลลัพธ์ คุณต้องทำ HTTP GET แบบมาตรฐาน อันดับแรก ต้องสร้างผลลัพธ์ขึ้นมาก่อน

ผลลัพธ์ทดสอบสามารถดาวน์โหลดได้ฟรี แต่จะมีลายน้ำอยู่ด้วย ส่วนผลลัพธ์สำหรับออกสื่อจะใช้หนึ่งเครดิตในการดาวน์โหลดครั้งแรก และฟรีเมื่อดาวน์โหลดซ้ำ

หากไม่มีผลลัพธ์ให้ใช้ได้ คุณจะได้รับผลตอบกลับที่เป็นข้อผิดพลาด

พารามิเตอร์

imageId

ผนวกรวมเข้าไปใน URL

คุณจะต้องใส่ค่า id ที่ส่งคืนมาให้ในการเรียกใช้อัปโหลด

เลือกได้
format

format=result (ค่าเริ่มต้น) เรียกภาพที่เป็นผลลัพธ์

แต่ format=clipping_path_svg จะเรียกใช้เส้นทางการคลิป (SVG) แทน

แต่ format=alpha_mask_png จะเรียกใช้มาส์กแอลฟา (PNG) แทน

แต่ format=json จะเรียกใช้ออปเจ็กต์ JSON ของภาพแทน มีประโยชน์หากคุณต้องการที่จะตรวขสอบ resultRevision หรือหากคุณสูญเสียรหัสลับของภาพ

การเรียกใช้ออบเจ็กต์ JSON ของภาพจะไม่เรียกเก็บเงินจากบัญชีของคุณ คุณจะต้องชำระเฉพาะเมื่อดาวน์โหลดผลลัพธ์สำหรับออกสื่อเท่านั้น

ส่วนหัวผลตอบกลับ

เมื่อ format ไม่ใช่ json เราจะเสนอข้อมูลสำคัญในส่วนหัวการตอบกลับของ HTTP เหล่านี้

x-amz-meta-id
Example: 2345

id ของภาพของคุณ

x-amz-meta-secret
Example: image_secret

secret ของภาพของคุณ

x-amz-meta-resultrevision
Example: 1

resultRevision ที่คุณเรียกใช้ในคำขอนี้

ทุกครั้งที่สร้างผลลัพธ์ใหม่ ตัวนับนี้จะเพิ่มขึ้น

x-amz-meta-width
Example: 3200
(รวมไว้สำหรับ format=result เท่านั้น)

ความกว้างในหน่วยพิกเซลของผลลัพธ์ที่คุณกำลังดึงข้อมูลในคำขอนี้

x-amz-meta-height
Example: 2400
(รวมไว้สำหรับ format=result เท่านั้น)

ความยาวในหน่วยพิกเซลของผลลัพธ์ที่คุณกำลังดึงข้อมูลในคำขอนี้

Content-Disposition
Example: attachment; filename*=UTF-8''image_clipped_rev_0.png

ชื่อไฟล์ของผลลัพธ์ รวมทั้งส่วนขยายด้วย

Username = API Id, Password = API Key

cURL

$ curl "https://clippingmagic.com/api/v1/images/2345" \
 -u 123:[secret] \ 
 -LOJ

ตัวอย่างผลตอบกลับ JSON

{
  "image" : {
    "id" : 2345,
    "secret" : "image_secret",
    "resultRevision" : 0,
    "originalFilename" : "image.jpg",
    "imageCategoryUser" : "Photo",
    "imageCategoryAi" : "Photo",
    "test" : false
  }
}

รายการ GET https://clippingmagic.com/api/v1/images

ในการเรียกใช้รายการออปเจ็กต์ JSON ของภาพที่คุณต้องการ ให้ทำ HTTP GET แบบมาตรฐาน

พารามิเตอร์

เลือกได้
limit

จำนวนบันทึกที่จะเรียกใช้ ค่าเริ่มต้นคือ 20 (ต่ำสุด 1, สูงสุด 100)

เลือกได้
offset

ค่าออฟเซ็ตเพื่อใช้ในรายการบันทึก (ค่าเริ่มต้นคือ 0)

ลักษณะเฉพาะผลตอบกลับ

images

อาร์เรย์ออปเจ็กต์ JSON ของภาพ

limit

limit ที่ใช้งานจริงเมื่อผลิตผลลัพธ์

offset

offset ที่ใช้งานจริงเมื่อผลิตผลลัพธ์

Username = API Id, Password = API Key

cURL

$ curl "https://clippingmagic.com/api/v1/images?limit=2&offset=0" \
 -u 123:[secret]

ตัวอย่างผลตอบกลับ

{
  "images" : [ {
    "id" : 2345,
    "secret" : "image_secret",
    "resultRevision" : 0,
    "originalFilename" : "image.jpg",
    "imageCategoryUser" : "Photo",
    "imageCategoryAi" : "Photo",
    "test" : false
  }, {
    "id" : 2346,
    "secret" : "image_secret2",
    "resultRevision" : 0,
    "originalFilename" : "image.jpg",
    "imageCategoryUser" : "Photo",
    "imageCategoryAi" : "Photo",
    "test" : false
  } ],
  "limit" : 2,
  "offset" : 0
}

ลบ POST https://clippingmagic.com/api/v1/images/[imageId]/delete

หากต้องการลบภาพออก คุณต้องส่ง HTTP POST แบบมาตรฐานไปยัง URL เพื่อลบภาพออก

การทำเช่นนี้มีความแตกต่างเล็กน้อยเมื่อเทียบกับวิธีปฏิบัติ REST แบบมาตรฐานในการจัดการกับความเป็นจริงที่ว่าไลบรารีไคลเอ็นต์ HTTP จำนวนมากไม่รองรับคำกริยา HTTP DELETE ขณะที่หลีกเลี่ยงไม่ให้เกิดความสับสนเพราะมีหลายวิธีสำหรับทำสิ่งเดียวกัน

พารามิเตอร์

imageId

ผนวกรวมเข้าไปใน URL

คุณจะต้องใส่ค่า id ที่ส่งคืนมาให้ในการเรียกใช้อัปโหลด

ลักษณะเฉพาะผลตอบกลับ

image

ออบเจกต์ JSON ของภาพที่ลบแล้ว

ลองใช้ดู

Username = API Id, Password = API Key

cURL

$ curl "https://clippingmagic.com/api/v1/images/2345/delete" \
 -u 123:[secret] \ 
 -X POST

ตัวอย่างผลตอบกลับ

{
  "image" : {
    "id" : 2345,
    "secret" : "image_secret",
    "resultRevision" : 0,
    "originalFilename" : "image.jpg",
    "imageCategoryUser" : "Photo",
    "imageCategoryAi" : "Photo",
    "test" : false
  }
}

บัญชี GET https://clippingmagic.com/api/v1/account

ดึงข้อมูลพื้นฐานเกี่ยวกับบัญชีของคุณ เช่น สถานะการสมัครสมาชิกและจำนวนเครดิตที่เหลืออยู่

พารามิเตอร์

ไม่มี

ลักษณะเฉพาะผลตอบกลับ

subscriptionPlan

แผนสมาชิกที่คุณมีอยู่ในขณะนี้ หรือ 'ไม่มี'

subscriptionState

สถานะการเป็นสมาชิกของคุณในขณะนี้ ('ใช้บริการ' หรือ 'ค้างชำระ') หรือ 'สิ้นสุดแล้ว' หากไม่ได้เป็นสมาชิก

credits

จำนวนเครดิตที่คงเหลือในบัญชีของคุณ ค่าเท่ากับ 0 ถ้าไม่ได้เป็นสมาชิกในขณะนี้

ลองใช้ดู

Username = API Id, Password = API Key

cURL

$ curl "https://clippingmagic.com/api/v1/account" \
 -u 123:[secret]

ตัวอย่างผลตอบกลับ

{
  "subscriptionPlan" : "none",
  "subscriptionState" : "ended",
  "credits" : 0
}