API การปรับภาพให้เป็นเวกเตอร์

Vectorizer.AI มี API การแปลงบิตแมปเต็มรูปแบบ API จะแปลงพิกเซลเป็นเวกเตอร์อย่างครบถ้วนโดยอัตโนมัติ และมีความเที่ยงตรงเหนือชั้นกว่าเครื่องมืออื่นในระดับเดียวกัน

รับคีย์ API

เริ่มใช้งานได้ทันที

โพสต์ภาพบิตแมปและรอรับผลลัพธ์ที่เป็นภาพเวกเตอร์กลับมา

$ curl https://th.vectorizer.ai/api/v1/vectorize \
 -u xyz123:[secret] \
 -F image=@example.jpeg \
 -o result.svg
// Requires: org.apache.httpcomponents.client5:httpclient5-fluent

Request request = Request.post("https://th.vectorizer.ai/api/v1/vectorize")
   .addHeader("Authorization", "Basic dmt5YzY3a3FhMjd5aWRkOltzZWNyZXRd")
   .body(
      MultipartEntityBuilder.create()
         .addBinaryBody("image", new File("example.jpeg")) // TODO: Replace with your image
         // TODO: Add more upload parameters here
         .build()
      );
ClassicHttpResponse response = (ClassicHttpResponse) request.execute().returnResponse();

if (response.getCode() == 200) {
   // Write result to disk, TODO: or wherever you'd like
   try (FileOutputStream out = new FileOutputStream("result.svg")) {
      response.getEntity().writeTo(out);
   }
} else {
   System.out.println("Request Failed: Status: " + response.getCode() + ", Reason: " + response.getReasonPhrase());
}
using (var client = new HttpClient())
using (var form = new MultipartFormDataContent())
{
   client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", "INSERT_API_KEY_HERE");
   form.Add(new ByteArrayContent(File.ReadAllBytes("example.jpeg")), "image", "example.jpeg"); // TODO: Replace with your image
   // TODO: Add more upload parameters here

   var response = client.PostAsync("https://th.vectorizer.ai/api/v1/vectorize", form).Result;

   if (response.IsSuccessStatusCode)
   {
      // Write result to disk, TODO: or wherever you'd like
      FileStream outStream = new FileStream("result.svg", FileMode.Create, FileAccess.Write, FileShare.None);
      response.Content.CopyToAsync(outStream).ContinueWith((copyTask) => { outStream.Close(); });
   }
   else
   {
       Console.WriteLine("Request Failed: Status: " + response.StatusCode + ", Reason: " + response.ReasonPhrase);
   }
}
// Requires "request" to be installed (see https://www.npmjs.com/package/request)
var request = require('request');
var fs = require('fs');

request.post({
  url: 'https://th.vectorizer.ai/api/v1/vectorize',
  formData: {
    image: fs.createReadStream('example.jpeg'), // TODO: Replace with your image
    // TODO: Add more upload options here
  },
  auth: {user: 'xyz123', pass: '[secret]'},
  followAllRedirects: true,
  encoding: null
}, function(error, response, body) {
  if (error) {
    console.error('Request failed:', error);
  } else if (!response || response.statusCode != 200) {
    console.error('Error:', response && response.statusCode, body.toString('utf8'));
  } else {
    // Save result
    fs.writeFileSync("result.svg", body);
  }
});
$ch = curl_init('https://th.vectorizer.ai/api/v1/vectorize');

curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HTTPHEADER,
    array('Authorization: Basic dmt5YzY3a3FhMjd5aWRkOltzZWNyZXRd'));
curl_setopt($ch, CURLOPT_POSTFIELDS,
    array(
      'image' => curl_file_create('example.jpeg'),
      // TODO: Add more upload options here
    ));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);

$data = curl_exec($ch);
if (curl_getinfo($ch, CURLINFO_HTTP_CODE) == 200) {
  // Save result
  file_put_contents("result.svg", $data);
} else {
  echo "Error: " . $data;
}
curl_close($ch);
# Either use the sample code below, or this SDK: https://pypi.org/project/vectorizer-ai/
# Requires "requests" to be installed (see https://pypi.org/project/requests/)
import requests

response = requests.post(
    'https://th.vectorizer.ai/api/v1/vectorize',
    files={'image': open('example.jpeg', 'rb')},
    data={
        # TODO: Add more upload options here
    },
    auth=('xyz123', '[secret]')
)
if response.status_code == requests.codes.ok:
    # Save result
    with open('result.svg', 'wb') as out:
        out.write(response.content)
else:
    print("Error:", response.status_code, response.text)
# Requires: gem install httpclient
require 'httpclient'

client = HTTPClient.new default_header: {
  "Authorization" => "Basic dmt5YzY3a3FhMjd5aWRkOltzZWNyZXRd"
}

response = client.post("https://th.vectorizer.ai/api/v1/vectorize", {
  "image" => File.open("example.jpeg", "rb"), # TODO: Replace with your image
  # TODO: Add more upload parameters here
})

if response.status == 200 then
  # Write result to disk, TODO: or wherever you'd like
  File.open("result.svg", 'w') { |file| file.write(response.body) }
else
  puts "Error: Code: " + response.status.to_s + ", Reason: " + response.reason
end
$ curl https://th.vectorizer.ai/api/v1/vectorize \
 -u xyz123:[secret] \
 -F 'image.url=https://example.com/example.jpeg' \
 -o result.svg
// Requires: org.apache.httpcomponents.client5:httpclient5-fluent

Request request = Request.post("https://th.vectorizer.ai/api/v1/vectorize")
   .addHeader("Authorization", "Basic dmt5YzY3a3FhMjd5aWRkOltzZWNyZXRd")
   .body(
      MultipartEntityBuilder.create()
         .addTextBody("image.url", "https://example.com/example.jpeg") // TODO: Replace with your image URL
         // TODO: Add more upload parameters here
         .build()
      );
ClassicHttpResponse response = (ClassicHttpResponse) request.execute().returnResponse();

if (response.getCode() == 200) {
   // Write result to disk, TODO: or wherever you'd like
   try (FileOutputStream out = new FileOutputStream("result.svg")) {
      response.getEntity().writeTo(out);
   }
} else {
   System.out.println("Request Failed: Status: " + response.getCode() + ", Reason: " + response.getReasonPhrase());
}
using (var client = new HttpClient())
using (var form = new MultipartFormDataContent())
{
   client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", "INSERT_API_KEY_HERE");
   form.Add(new StringContent("https://example.com/example.jpeg"), "image.url"); // TODO: Replace with your image URL
   // TODO: Add more upload parameters here

   var response = client.PostAsync("https://th.vectorizer.ai/api/v1/vectorize", form).Result;

   if (response.IsSuccessStatusCode)
   {
      // Write result to disk, TODO: or wherever you'd like
      FileStream outStream = new FileStream("result.svg", FileMode.Create, FileAccess.Write, FileShare.None);
      response.Content.CopyToAsync(outStream).ContinueWith((copyTask) => { outStream.Close(); });
   }
   else
   {
       Console.WriteLine("Request Failed: Status: " + response.StatusCode + ", Reason: " + response.ReasonPhrase);
   }
}
// Requires "request" to be installed (see https://www.npmjs.com/package/request)
var request = require('request');
var fs = require('fs');

request.post({
  url: 'https://th.vectorizer.ai/api/v1/vectorize',
  formData: {
    'image.url': 'https://example.com/example.jpeg', // TODO: Replace with your image
    // TODO: Add more upload options here
  },
  auth: {user: 'xyz123', pass: '[secret]'},
  followAllRedirects: true,
  encoding: null
}, function(error, response, body) {
  if (error) {
    console.error('Request failed:', error);
  } else if (!response || response.statusCode != 200) {
    console.error('Error:', response && response.statusCode, body.toString('utf8'));
  } else {
    // Save result
    fs.writeFileSync("result.svg", body);
  }
});
$ch = curl_init('https://th.vectorizer.ai/api/v1/vectorize');

curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HTTPHEADER,
    array('Authorization: Basic dmt5YzY3a3FhMjd5aWRkOltzZWNyZXRd'));
curl_setopt($ch, CURLOPT_POSTFIELDS,
    array(
      'image.url' => 'https://example.com/example.jpeg',
      // TODO: Add more upload options here
    ));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);

$data = curl_exec($ch);
if (curl_getinfo($ch, CURLINFO_HTTP_CODE) == 200) {
  // Save result
  file_put_contents("result.svg", $data);
} else {
  echo "Error: " . $data;
}
curl_close($ch);
# Either use the sample code below, or this SDK: https://pypi.org/project/vectorizer-ai/
# Requires "requests" to be installed (see https://pypi.org/project/requests/)
import requests

response = requests.post(
    'https://th.vectorizer.ai/api/v1/vectorize',
    data={
        'image.url': 'https://example.com/example.jpeg',
        # TODO: Add more upload options here
    },
    auth=('xyz123', '[secret]')
)
if response.status_code == requests.codes.ok:
    # Save result
    with open('result.svg', 'wb') as out:
        out.write(response.content)
else:
    print("Error:", response.status_code, response.text)
# Requires: gem install httpclient
require 'httpclient'

client = HTTPClient.new default_header: {
  "Authorization" => "Basic dmt5YzY3a3FhMjd5aWRkOltzZWNyZXRd"
}

response = client.post("https://th.vectorizer.ai/api/v1/vectorize", {
  "image.url" => "https://example.com/example.jpeg", # TODO: Replace with your image URL
  # TODO: Add more upload parameters here
})

if response.status == 200 then
  # Write result to disk, TODO: or wherever you'd like
  File.open("result.svg", 'w') { |file| file.write(response.body) }
else
  puts "Error: Code: " + response.status.to_s + ", Reason: " + response.reason
end

แชทบอท API

เราได้สร้าง ChatGPT แบบกำหนดเองเพื่อช่วยให้คุณสามารถทำการผนวกรวมแอปด้วย API ได้ แชทบอทนี้สามารถตอบคำถามเกี่ยวกับเอกสารประกอบ API และมอบโค้ดตัวอย่างในภาษาที่คุณต้องการโดยปรับให้เหมาะกับกรณีการใช้งานของคุณ

แชทกับแชทบอท API "Vectorizer.AI"

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

วิธีใช้ API นี้

API ได้รับการออกแบบมาเพื่อรองรับกรณีการใช้งานที่แตกต่างกันมากมายหลายแบบ กรณีที่พบบ่อยมีดังนี้:

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

ใช้จุดหมาย ปรับให้เป็นเวกเตอร์ และตัวอย่างรหัสข้างต้น

แสดงตัวอย่างก่อน แสดงตัวอย่างให้ผู้ที่อาจเป็นลูกค้าของคุณดูก่อนที่จะซื้อ

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

  1. ใช้จุดหมาย ปรับให้เป็นเวกเตอร์ พร้อมด้วย mode=preview และ policy.retention_days > 0 เพื่อดูตัวอย่าง โดยต้องแน่ใจว่าเก็บโทเค็นภาพที่ส่งคืนไว้ในส่วนหัวคำตอบกลับ X-Image-Token

  2. หลังจากที่แปลงแล้ว ให้ใช้จุดหมาย ดาวน์โหลด พร้อมด้วยโทเค็นภาพเพื่อดาวน์โหลดผลลัพธ์เต็มรูปแบบ

  3. เลือกได้: หากคุณต้องการรูปแบบผลลัพธ์แบบอื่น (เช่น PNG, PDF ฯลฯ) โปรดเก็บใบเสร็จที่ส่งคืนให้ในส่วนหัวคำตอบกลับการดาวน์โหลด X-Receipt จากนั้นใช้จุดหมาย ดาวน์โหลด พร้อมด้วยโทเค็นภาพและใบเสร็จเพื่อดาวน์โหลดรูปแบบที่เหลือ

หลายรูปแบบ คุณต้องใช้ผลลัพธ์ทั้งในรูปแบบ PNG และ SVG

  1. ใช้จุดหมาย ปรับให้เป็นเวกเตอร์ กับ policy.retention_days > 0 เพื่อให้ได้ผลลัพธ์แรก โดยต้องแน่ใจว่าเก็บโทเค็นภาพที่ส่งคืนในส่วนหัวของคำตอบกลับ X-Image-Token

  2. ใช้จุดหมาย ดาวน์โหลด กับโทเค็นภาพเพื่อดาวน์โหลดรูปแบบอื่น ๆ

หลายตัวเลือก คุณจำเป็นต้องประมวลผลแต่ละภาพด้วยตัวเลือกการประมวลผลที่หลากหลาย

  1. ใช้จุดหมาย ปรับให้เป็นเวกเตอร์ กับ policy.retention_days > 0 เพื่อให้ได้ผลลัพธ์แรก โดยต้องแน่ใจว่าเก็บโทเค็นภาพที่ส่งคืนในส่วนหัวของคำตอบกลับ X-Image-Token

  2. ใช้จุดหมาย ปรับให้เป็นเวกเตอร์ กับโทเค็นภาพเพื่อวนซ้ำตัวเลือกการประมวลผลที่เหลือตามที่คุณต้องการ

  3. หรือคุณอาจประมวลผลแต่ละภาพแยกกันและไม่ต้องกังวลกับโทเค็นภาพ โทเค็นภาพช่วยให้คุณประหยัดแบนด์วิทและเวลาแฝงได้เล็กน้อย

การกำหนดราคา

การกระทำเครดิตคำอธิบาย
การทดสอบ0.000

สามารถผสานรวมและทดสอบ API ได้ฟรี โดยไม่จำเป็นต้องสมัครสมาชิก

ใช้ mode=test และ mode=test_preview เพื่อการพัฒนา

คุณสามารถประเมินคุณภาพผลลัพธ์ได้โดยใช้เว็บแอปแบบโต้ตอบที่หน้าหลัก

ตัวอย่าง0.200

เราเสนอผลลัพธ์ตัวอย่างที่คุณสามารถแสดงให้ผู้ใช้ปลายทางเห็นก่อนตัดสินใจซื้อได้ด้วย

ภาพตัวอย่างคือภาพ PNG ที่มีขนาดใหญ่กว่าภาพอินพุตถึง 4 เท่า และมีลายน้ำกำกับให้เห็นด้วย

ใช้ mode=preview เพื่อรับผลลัพธ์ตัวอย่าง

ปรับให้เป็นเวกเตอร์1.000 ปรับภาพบิตแมปให้เป็นภาพเวกเตอร์
ดูตัวอย่างอัปเกรด0.900 ดาวน์โหลดผลลัพธ์ภาพที่พร้อมออกสื่อหลังจากการเรียก API การแสดงตัวอย่าง ได้ส่วนลด เมื่อเทียบกับการปรับให้เป็นเวกเตอร์ตั้งแต่ต้น
รูปแบบการดาวน์โหลด:0.100 ดาวน์โหลดผลลัพธ์ในอีกรูปแบบหนึ่ง (เช่น SVG, PNG, PDF, ฯลฯ) ได้ส่วนลด เมื่อเทียบกับการปรับให้เป็นเวกเตอร์ตั้งแต่ต้น
จำนวนวันการจัดเก็บ0.010 ราคาต่อวันสำหรับการจัดเก็บผลลัพธ์หลังวันแรกที่เป็นบริการฟรี

โปรดดูหน้าการกำหนดราคาสำหรับแผนบริการสมาชิก

การรับรองความถูกต้องและการรักษาความปลอดภัย

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

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

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

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

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

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

วิธีที่ง่ายที่สุดในการเพิ่มระดับการทำงานแบบขนานทีละน้อยคือ ให้เริ่มจำนวนเธรดที่คุณต้องการใช้ทันที แต่ต่อมาให้ใช้เซมาฟอร์จำกัดจำนวนที่เริ่มต้นด้วย 5 ใบอนุญาต จากนั้นคุณสามารถมีเธรดแบบแยกต่างหากกันที่เพิ่มจำนวนใบอนุญาต 1 ใบอนุญาตทุก ๆ 5 นาทีได้

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

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

การหมดเวลา

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

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

JSON ของข้อผิดพลาด

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

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

ลักษณะเฉพาะ

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

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

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

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

ความสำเร็จ

400-499

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

500-599

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

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

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

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

นอกจากนี้ยังมีรายการการข้อความตอบกลับข้อผิดพลาดทั้งหมดที่ API ส่งกลับ

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

ส่วนหัวคำตอบกลับแบบกำหนดเองที่เราใช้มีดังต่อไปนี้:

ส่วนหัวคำอธิบาย
X-Image-Token

ส่งคืนให้เมื่อคำขอการปรับให้เป็นเวกเตอร์ของคุณมี policy.retention_days > 0 สามารถใช้เพื่อ:

  1. ดาวน์โหลดผลลัพธ์ที่พร้อมออกสื่อหลังจากการเรียก API การแสดงตัวอย่างพร้อมส่วนลด เมื่อเทียบกับการปรับให้เป็นเวกเตอร์ตั้งแต่ต้น

  2. ดาวน์โหลดรูปแบบเพิ่มเติม (เช่น SVG, PNG, PDF ฯลฯ) ของผลลัพธ์ในอัตราที่ลดลงเมื่อเทียบกับการปรับให้เป็นเวกเตอร์ตั้งแต่ต้น

  3. ปรับภาพเดิมให้เป็นเวกเตอร์อีกครั้งด้วยตัวเลือกการประมวลผลที่แตกต่างกัน

X-Receipt

ส่งคืนให้เมื่อคุณดาวน์โหลดผลลัพธ์ที่พร้อมออกสื่อโดยใช้โทเค็นภาพตัวอย่าง สามารถใช้เพื่อดาวน์โหลดผลลัพธ์ในรูปแบบอื่นเพิ่มเติม (เช่น SVG, PNG, PDF ฯลฯ) ที่อัตรารูปแบบการดาวน์โหลดแทนที่จะเป็นอัตราการแสดงตัวอย่างแบบอัปเกรด

X-Credits-Calculated

ส่งคืนให้พร้อมกับคำขอทดสอบเพื่อแสดงค่าใช้จ่ายที่อาจเกิดขึ้นหากเป็นคำขอตามปกติ

X-Credits-Charged

ส่งคืนให้พร้อมกับคำขอทั้งหมดเพื่อแสดงค่าใช้จ่ายที่เกิดขึ้น คำขอทดสอบมีค่าเป็น 0 เสมอ

ปรับให้เป็นเวกเตอร์ POST
https://api.vectorizer.ai/api/v1/vectorize

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

ตารางด้านล่างแสดงพารามิเตอร์ทั้งหมดของ API ในแบบฟอร์ม "ลองใช้ตอนนี้" ที่ใช้งานได้ พารามิเตอร์แต่ละตัวมีคำอธิบายสั้น ๆ แต่อย่าลืมอ่านเอกสารที่มีรายละเอียดเกี่ยวกับตัวเลือกเอาต์พุต

ดาวน์โหลด POST
https://api.vectorizer.ai/api/v1/download

จุดหมายนี้ช่วยให้คุณ:

  1. ดาวน์โหลดผลลัพธ์ภาพเต็มรูปแบบที่พร้อมออกสื่อหลังจากการเรียก API การแสดงตัวอย่าง

    เรารวมส่วนหัว X-Receipt ในคำตอบกลับเพื่อให้คุณสามารถดาวน์โหลดรูปแบบเอาต์พุตเพิ่มเติมในจ่ายค่ารูปแบบการดาวน์โหลดด้วยอัตราต่ำลงในภายหลัง

  2. ดาวน์โหลดเอาต์พุตของภาพเดียวกันในหลายรูปแบบและดำเนินการกับรูปแบบต่าง ๆ โดยจ่ายค่ารูปแบบการดาวน์โหลดในอัตราต่ำลง และไม่จำเป็นต้องปรับให้เป็นเวกเตอร์ใหม่ตั้งแต่ต้น

ลบ POST
https://api.vectorizer.ai/api/v1/delete

ภาพที่ปรับเป็นเวกเตอร์ด้วย policy.retention_days > 0 จะจัดเก็บไว้ตามช่วงเวลาที่ขอไว้ และจะลบออกโดยอัตโนมัติในเวลาไม่นานหลังจากนั้น

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

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

success

true ยืนยันว่าได้ลบโทเค็นภาพแล้ว

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

{
  "success" : true
}

สถานะบัญชี GET
https://api.vectorizer.ai/api/v1/account

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

พารามิเตอร์

ไม่มี

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

subscriptionPlan

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

subscriptionState

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

credits

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

ลองใช้ดู

ชื่อผู้ใช้ = API Id, รหัสผ่าน = รหัสลับ API

cURL

$ curl "https://api.vectorizer.ai/api/v1/account" \
 -u vkyc67kqa27yidd:[secret]

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

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

บันทึกการเปลี่ยนแปลง API

วันที่เปลี่ยน
4 พ.ย. 2024 เพิ่ม processing.shapes.min_area_px
1 ต.ค. 2024 เพิ่มแชทบอท AI เพื่อช่วยในการผนวกรวมแอปด้วย API
23 ก.ย. 2024 ขยาย API ให้มากขึ้นเพื่อเปิดใช้งานโหมดการทำงานเพิ่มเติม เพิ่มโทเค็นภาพ ใบเสร็จ ส่วนหัวการเรียกเก็บเงินต่อการเรียกใช้ และจุดหมายการดาวน์โหลดและจุดหมายการลบ
11 มิ.ย. 2024 เพิ่ม processing.palette
4 มี.ค. 2024 เพิ่มหัวข้อเกี่ยวกับการหมดเวลา
24 ม.ค. 2024 เพิ่มจุดหมายของสถานะบัญชี เพิ่มข้อผิดพลาด API ล่าสุดในหน้าบัญชี เพิ่มรายการข้อความตอบกลับข้อผิดพลาด API ทั้งหมด
16 ม.ค. 2024 ออบเจ็กต์ JSON ของข้อผิดพลาดที่จัดทำเอกสารไว้
3 ต.ค. 2023 ชี้แจงว่า output.gap_filler.enabled=true ทำให้มีสีในผลลัพธ์มากกว่าที่ขอไว้ใน processing.max_colors
20 ก.ย. 2023 ได้เพิ่ม mode
1 ส.ค. 2023 เพิ่มกลุ่มตัวเลือกขนาดเอาต์พุตที่มีคุณสมบัติครบถ้วนพร้อมตัวเลือกต่อไปนี้: output.size.scale output.size.width output.size.height output.size.unit output.size.aspect_ratio output.size.align_x output.size.align_y output.size.input_dpi และoutput.size.output_dpi เพิ่มกลุ่มตัวเลือกเอาต์พุตบิตแมปด้วยตัวเลือกเดียว: output.bitmap.anti_aliasing_mode
7 มิ.ย. 2023 ได้เพิ่ม processing.max_colors
31 พ.ค. 2023 เพิ่มพารามิเตอร์ API ให้มากขึ้นอีกมาก อัปเดตให้ URL ที่เป็นจุดหมายของ API
10 มี.ค. 2023 ออกเผยแพร่ครั้งแรก
รับคีย์ API