Image Vectorization 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);
# Requires "requests" to be installed (see python-requests.org)
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
    },
    headers={
        'Authorization':
        'Basic dmt5YzY3a3FhMjd5aWRkOltzZWNyZXRd'
    },
)
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);
# Requires "requests" to be installed (see python-requests.org)
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
    },
    headers={
        'Authorization':
        'Basic dmt5YzY3a3FhMjd5aWRkOltzZWNyZXRd'
    },
)
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, ไม่จำเป็นต้องสมัครสมาชิก.

Production results require a subscription and are 1.00 credits each.

นอกจากนี้เรายังเสนอผลการแสดงตัวอย่างที่คุณสามารถแสดงผู้ใช้ของคุณก่อนที่จะทำการซื้อ ภาพตัวอย่างเป็นภาพ PNG ใหญ่กว่าภาพที่คุณป้อนถึงสี่เท่า และมาพร้อมกับลายน้ำที่ละเอียดรอบคอบ Previews are 0.20 credits each.

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

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

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

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

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

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

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

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

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

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

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

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

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

พารามิเตอร์

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


ไบนารี

ไฟล์ไบนารี


สตริง

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


สตริง

URL เพื่อเรียกใช้และประมวลผล

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

ขนาดสูงสุดของภาพที่จะอัปโหลด (= ความกว้าง × ความสูง) คือ 33,554,432 พิกเซล, ซึ่งจะลดขนาดลงเป็น input.max_pixels


ข้อมูลคงที่, ค่าเริ่มต้น: production
Value Processing Mode Credits
production

โหมดนี้มีไว้สำหรับการใช้งานในการผลิตและสนับสนุนพารามิเตอร์ทั้งหมด

1.00
preview

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

มันก่อให้เกิดผล PNG 4x ด้วยลายน้ำรอบคอบโดยไม่สนใจพารามิเตอร์ที่ขัดแย้งกันใด ๆ

0.20
test

โหมดนี้มีไว้สำหรับการใช้งานสำหรับนักพัฒนาเมื่อใช้งานร่วมกับบริการ พารามิเตอร์ทั้งหมดได้รับการสนับสนุน แต่มีลายน้ำที่สำคัญ

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

ฟรี

เลขจำนวนเต็ม, 100 ถึง 2097252, ค่าเริ่มต้น: 2097252

ขนาดสูงสุดของภาพอินพุต (= ความกว้าง × ความสูง ในหน่วยพิกเซล) ภาพที่มีขนาดใหญ่กว่านี้จะถูกย่อขนาดลงเป็นขนาดนี้ก่อนการประมวลผล


เลขจำนวนเต็ม, 0 ถึง 256, ค่าเริ่มต้น: 0

จำนวนสีสูงสุดที่จะใช้สำหรับผลลัพธ์

0 หมายถึง ไม่จำกัด 1 และ 2 ทั้งคู่หมายถึง สองสี เช่น ดำ-และ-ขาว N>=2 หมายถึงจำนวนสีตามที่ระบุไว้


ข้อมูลคงที่, ค่าเริ่มต้น: svg

รูปแบบไฟล์เอาต์พุต

ตัวเลือก SVG:


ข้อมูลคงที่, ค่าเริ่มต้น: svg_1_1

ระบุแอตทริบิวต์ที่เป็นเวอร์ชันของ SVG ในแท็ก SVG รายละเอียด


ข้อมูลบูลีน, ค่าเริ่มต้น: false

ขึ้นอยู่กับว่าจะรวมแอตทริบิวต์ที่เป็นขนาดภาพในแท็ก SVG หรือไม่ ถ้าเป็น true โดยปกติโปรแกรมดูภาพจะเรนเดอร์ SVG ในขนาดคงที่ ถ้าเป็น false โดยปกติโปรแกรมดูภาพจะปล่อยให้ SVG ปรับขนาดให้พอดีกับพื้นที่ที่มีอยู่ รายละเอียด


ข้อมูลบูลีน, ค่าเริ่มต้น: false

ถ้าเป็น true เราจะปิดใช้งานตัวเลือกที่ Adobe Illustrator ไม่สามารถนำเข้าได้ รายละเอียด

ตัวเลือก DXF:


ข้อมูลคงที่, ค่าเริ่มต้น: lines_and_arcs

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

ตัวเลือกสำหรับบิตแมป:


ข้อมูลคงที่, ค่าเริ่มต้น: anti_aliased
Value Anti-Aliasing Mode
anti_aliased พิกเซลตามแนวขอบระหว่างรูปทรงจะมีสีที่ผสมกันตามสัดส่วนของพื้นที่พิกเซลที่แต่ละรูปทรงครอบคลุมอยู่
aliased พิกเซลถูกกำหนดให้เป็นสีของรูปทรงที่มีจุดศูนย์กลางทางเรขาคณิตของพิกเซล

ข้อมูลคงที่, ค่าเริ่มต้น: fill_shapes

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


ข้อมูลคงที่, ค่าเริ่มต้น: cutouts

กำหนดว่าให้วางรูปทรงไว้ในคัตเอาต์ภายในรูปทรงด้านล่าง (cutouts) หรือวางซ้อนทับกันและกัน (stacked) รายละเอียด


ข้อมูลคงที่, ค่าเริ่มต้น: none
Value Shape grouping
none ไม่มีการจัดกลุ่ม
color ตามสี มีปฏิสัมพันธ์กับ output.shape_stacking
parent ตามรูปทรงที่ล้อมอยู่
layer ตามเลเยอร์ลำดับภาพ
รายละเอียด

ข้อมูลบูลีน, ค่าเริ่มต้น: false

ปรับรูปวงกลม รูปวงรี รูปสี่เหลี่ยม รูปสามเหลี่ยม และรูปดาวที่ระบุไว้ให้เป็นเส้นโค้งธรรมดา รายละเอียด

เส้นโค้ง:


ข้อมูลบูลีน, ค่าเริ่มต้น: true

อนุญาตให้ใช้เส้นโค้งเบซิเยร์แบบจุดควบคุมสามจุดหรือไม่ รายละเอียด


ข้อมูลบูลีน, ค่าเริ่มต้น: true

อนุญาตให้ใช้เส้นโค้งเบซิเยร์แบบจุดควบคุมสี่จุดหรือไม่ รายละเอียด


ข้อมูลบูลีน, ค่าเริ่มต้น: true

ยอมให้ใช้เส้นโค้งวงกลมหรือไม่ รายละเอียด


ข้อมูลบูลีน, ค่าเริ่มต้น: true

ยอมให้ใช้เส้นโค้งวงรีหรือไม่ รายละเอียด


เลขทศนิยม, 0.001 ถึง 1.0, ค่าเริ่มต้น: 0.1

ระยะห่างสูงสุดเป็นพิกเซลระหว่างเส้นโค้งและเส้นที่ประมาณค่า รายละเอียด

ตัวอุดช่องว่าง


ข้อมูลบูลีน, ค่าเริ่มต้น: true

จะแก้ไขจุดบกพร่องในการเรนเดอร์เส้นสีขาวที่พบบ่อยในโปรแกรมดูภาพเวกเตอร์หรือไม่ รายละเอียด


ข้อมูลบูลีน, ค่าเริ่มต้น: false

จะคลิปเส้นขอบตัวอุดช่องว่างหรือไม่ เมื่อ output.shape_stacking=stacked คลิปหรือใช้เส้นขอบแบบไม่ปรับขนาด รายละเอียด


ข้อมูลบูลีน, ค่าเริ่มต้น: true

ขึ้นอยู่กับว่าจะใช้เส้นขอบแบบไม่ปรับขนาดกับตัวอุดช่องว่างหรือไม่ เมื่อ output.shape_stacking=stacked คลิปหรือใช้เส้นขอบแบบไม่ปรับขนาด รายละเอียด


เลขทศนิยม, 0.0 ถึง 5.0, ค่าเริ่มต้น: 2.0

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

รูปแบบของเส้นขอบเมื่อ output.draw_style คือ stroke_shapes หรือ stroke_edges


ข้อมูลบูลีน, ค่าเริ่มต้น: true

จะใช้เส้นขอบแบบไม่ปรับขนาดหรือไม่ รายละเอียด


ข้อมูลบูลีน, ค่าเริ่มต้น: false

ขึ้นอยู่กับว่าจะใช้สีแทนที่หรือสีโดยประมาณของรูปทรงหรือไม่ รายละเอียด


รูปแบบ: '#RRGGBB', เช่น #FF00FF, ค่าเริ่มต้น: #000000

สีแทนที่ รายละเอียด


เลขทศนิยม, 0.0 ถึง 5.0, ค่าเริ่มต้น: 1.0

ความกว้างของเส้นขอบ รายละเอียด

ขนาดเอาต์พุต:


เลขทศนิยม, 0.0 ถึง 1000.0

ปัจจัยขนาดแบบเดียวกัน หากระบุไว้ ขนาดนี้จะมีความสำคัญมากกว่า output.size.width และ output.size.height


เลขทศนิยม, 0.0 ถึง 1.0E12

ความกว้างในหน่วยที่ output.size.unit กำหนดไว้ หากระบุแค่ความกว้างหรือความสูงเพียงค่าเดียว ระบบจะคำนวณอีกค่าหนึ่งโดยอัตโนมัติเพื่อรักษาอัตราส่วนกว้างยาวไว้


เลขทศนิยม, 0.0 ถึง 1.0E12

ความกว้างที่ output.size.unit กำหนดไว้ หากระบุแค่ความกว้างหรือความสูงเพียงค่าเดียว ระบบจะคำนวณอีกค่าหนึ่งโดยอัตโนมัติเพื่อรักษาอัตราส่วนกว้างยาวไว้


ข้อมูลคงที่, ค่าเริ่มต้น: none

หน่วยวัดความกว้างและความสูง ในบรรดาหน่วยเหล่านี้ pt, in, cm และ mm เป็นหน่วยทางกายภาพ ส่วน none และ px เป็นหน่วยที่ไม่ใช่กายภาพ ความแตกต่างเหล่านี้มีปฏิสัมพันธ์กับ output.size.input_dpi และ output.size.output_dpi


ข้อมูลคงที่, ค่าเริ่มต้น: preserve_inset

ค่า กฎการปรับขนาด
preserve_inset ปรับขนาดอย่างสม่ำเสมอให้พอดีกับขนาดที่กระชับมากกว่า เพื่อไม่ให้มีส่วนที่ล้นเกิน แต่จะมีพื้นที่ว่างในอีกขนาดหนึ่ง
preserve_overflow ปรับขนาดอย่างสม่ำเสมอให้พอดีกับขนาดที่กระชับน้อยกว่า เพื่อให้มีส่วนที่ล้นเกินขนาดที่กระชับมากกว่า
stretch ปรับขนาดอย่างไม่สม่ำเสมอเพื่อให้พอดีกับความกว้างและความสูงที่ระบุไว้
ในตัวเลือก preserve ใด ๆ ค่า output.size.align_x หรือ output.size.align_y จะควบคุมตำแหน่งในขนาดที่ไม่มีข้อจำกัด


เลขทศนิยม, 0.0 ถึง 1.0, ค่าเริ่มต้น: 0.5

การจัดแนวในแนวนอนสำหรับ output.size.aspect_ratiopreserve_inset หรือ preserve_overflow

ค่า การจัดแนวในแนวนอน
0.0 จัดแนวให้ชิดซ้าย
0.5 กึ่งกลางแนวนอน
1.0 จัดแนวให้ชิดขวา
ค่าใด ๆ ก็ได้ระหว่าง 0.0 ถึง 1.0


เลขทศนิยม, 0.0 ถึง 1.0, ค่าเริ่มต้น: 0.5

การจัดแนวในแนวตั้งสำหรับ output.size.aspect_ratiopreserve_inset หรือ preserve_overflow

ค่า การปรับแนวตามแนวตั้ง
0.0 จัดแนวให้ชิดด้านบนสุด
0.5 กึ่งกลางแนวตั้ง
1.0 จัดแนวให้ชิดด้านล่างสุด
ค่าใด ๆ ก็ได้ระหว่าง 0.0 ถึง 1.0


เลขทศนิยม, 1.0 ถึง 1000000.0

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


เลขทศนิยม, 1.0 ถึง 1000000.0

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

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

วันที่เปลี่ยน
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