이미지 벡터화 API

Vectorizer.AI는 본격적인 비트맵 추적 API를 제공합니다. API는 동급 최강의 충실도로 완전 자동으로 픽셀을 벡터로 트레이스합니다.

API 키 가져오기

빠른 시작

비트맵 이미지를 POST하고 벡터화된 결과를 얻습니다.

$ curl https://ko.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://ko.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://ko.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://ko.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://ko.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://ko.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://ko.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://ko.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://ko.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://ko.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://ko.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://ko.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://ko.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://ko.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와 무료로 통합하고 테스트할 수 있으며 구독이 필요하지 않습니다.

개발에는 mode=test를 사용하십시오. 첫 페이지의 대화형 웹 앱을 사용하여 결과 품질을 평가할 수 있습니다.

제작 결과에는 구독이 필요하며 각각 1.00 크레딧이 필요합니다.

또한 최종 사용자가 구매하기 전에 보여줄 수 있는 미리보기 결과도 제공합니다.

미리보기는 입력한 것보다 4배 더 큰 PNG 이미지이며, 눈에 띄지 않는 워터마크와 함께 제공되며 비용은 각각 0.20 크레딧입니다.

미리보기 결과를 보시려면 mode=preview를 사용하십시오.

구독 요금제에 대해서는 가격 페이지를 참조하십시오.

인증 및 보안

API는 표준 HTTP 기본 액세스 인증을 이용합니다. API에 대한 모든 요청은 HTTPS를 통해 이루어져야 하며 API 자격 증명을 포함해야 하며 API ID는 사용자로, API 암호는 비밀번호로 지정해야 합니다.

성공적인 요구를 하려면 귀하의 HTTP 클라이언트 라이브러리는 서버 이름 표시 (SNI)를 지원하여야 합니다. 이상한 핸드셰이크 에러를 받으면, 대부분이 이러한 이유입니다.

비율 제한

API의 사용은 관대 한 허용량으로 속도가 제한되며 상한선이 없습니다.

정상적 최종 사용자 중심 작동중에는 비율 제한을 거의 받지 않을것입니다, 그 이유는 사용이 줄어용자 중심 작동중에는 비율 제한을 거의 받지 않을것입니다, 그 이유는 사용이 줄어드는 경향이 있으며 서비스가 적절히 처리되는 방향으로 흘러갑니다.

하지만, 최대 5개의 스레드로 시작하고, 원하는 레벨의 평행에 도달할 때 까지, 매5분마다 1개의 스레드를 추가하기를 추천합니다. 100개 이상의 동시 스레드가 필요하면 시작하기 전에 알려주십시오.

너무 많은 요구를 제출하면 429 Too Many Requests를 받기 시작합니다. 이러한 일이 발생하며, 선형적으로 물러나십시오: 처음 이러한 반응을 받으면, 다음 요구를 제출하기 전에 5초를 기다리십시오. 2번째의 연속적 429 반응을 받으면, 다음 요구를 제출하기 이전에 2*5=10 초를 기다리십시오. 3번째 반응을 받으면, 3*5=15 초, 등을 기다리십시오.

요구가 성공적이면, 물러나기를 재설정하시고 매 스레드에 기존하여 물러나십시오 (예, 스레드가 서로 독립적으로 작동하여야 합니다).

타임아웃

API 요청은 일반적으로 몇 초 내에 완료되지만 일시적인 로드 급증 중에는 처리 시간이 더 길어질 수 있습니다.

클라이언트 라이브러리가 API 요청을 조기에 종료하지 않도록 하려면 최소한 180 초의 유휴 시간 제한으로 구성해야 합니다.

오류 JSON 개체

우리는 API 요청의 성공 또는 실패를 알려주기 위하여 기본 HTTP 상태를 이용하며 또한 반환된 오류 JSON 매체에 중요한 에러 정보를 포함합니다.

문제가 있는 요구에는 언제나 오류 JSON 개체를 반환하려고 합니다. 하지만, 내부 서버 실패가 비-JSON 오류 메시지로 나타나는 것은 항상 이론적으로 가능합니다.

특성

status디버깅에 도움이 되도록 응답의 HTTP 상태가 여기 다시 되풀이됩니다.
codeVectorizer.AI 내부 에러 코드.
message디버깅에 유용한 사람이 읽을 수 있는 오류 메시지.

귀하 요구의 HTTP 상태가 200 이면, 오류 JSON 개체가 반환되지 않으며, 요구가 널리 전달되었다고 생각하여도 안전합니다.

일부 HTTP 클라이언트 라이브러리는 400 에서 599 범위로 HTTP 상태 예외를 알려줍니다. 이러한 예외를 감지하고 적절히 처리하여야 합니다.

HTTP Status의미
200-299

성공

400-499

요구에서 제공된 정보에 문제가 있습니다 (예, 매개변수가 없음) 오류 메시지를 검토하고 어떻게 수정할 것인지 알아보십시오.

500-599

Vectorizer.AI 내부 에러 코드가 있었습니다. 잠시 기다리신 다음 다시 시도하십시오, 그리고 문제가 계속되면 이메일을 저희한테 보내주십시오.

오류 응답 예

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

디버깅 편의를 위해 최근 API 오류가 계정 페이지에 나열됩니다.

API에서 반환된 모든 오류 응답 목록도 있습니다.

벡터화 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

이 모드는 최종 사용자가 구매하기 전에 미리보기를 보여주려는 경우에 사용됩니다.

모순되는 매개변수를 무시하고 신중한 워터마크가 있는 4x PNG 결과를 생성합니다.

0.20
test

이 모드는 서비스와 통합할 때 개발자가 사용하기 위한 것입니다. 모든 매개변수가 지원되지만 중요한 워터마킹이 있습니다.

테스트 결과는 무료이며 활성 구독이 필요하지 않으므로 서비스와 무료로 통합할 수 있습니다.

무료

정수, 100 에서o 3145828로, 기본값: 2097252

최대 이미지 업로드 크기(= 폭 × 높이 픽셀) 이보다 큰 이미지는 처리 전에 이 크기로 축소됩니다.


정수, 0 에서o 256로, 기본값: 0

결과에 사용할 최대 색상 수입니다.

0는 무제한을 의미합니다. 12 둘 다 두 가지 색상을 의미합니다, 예 흑색-백색 N>=2는 색상 수를 의미합니다.

output.gap_filler.enabled=true(기본값)인 경우 결과에는 선택한 색상의 혼합도 포함됩니다. 선택한 색상만으로 결과를 얻으려면 간격 채우기를 비활성화하십시오.


열거형, 기본값: 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

2차 베지어 곡선을 허용할지 여부. 상세정보


부울, 기본값: true

Cubic Bézier Curves 허용 여부. 상세정보


부울, 기본값: 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_stylestroke_shapes 또는 stroke_edges인 경우 스트로크 스타일


부울, 기본값: true

스케일링되지 않는 스트로크를 사용할지 여부. 상세정보


부울, 기본값: false

오버라이드 색상을 사용할지 모양의 예상 색상을 사용할지 여부. 상세정보


형식: '#RRGGBB', 예: #FF00FF, 기본값: #000000

오버라이드 색상. 상세정보


부동, 0.0 ~ 5.0, 기본값: 1.0

스트로크 폭. 상세정보

출력 크기


부동, 0.0 ~ 1000.0

균일 배율 인수. 지정된 경우, 이는 output.size.widthoutput.size.height보다 우선입니다.


부동, 0.0 ~ 1.0E12

output.size.unit로 지정된 단위의 폭. 폭과 높이 중 하나만 지정하면, 가로 세로 비율을 유지하기 위해 다른 하나는 자동으로 계산됩니다.


부동, 0.0 ~ 1.0E12

output.size.unit로 지정된 단위의 높이. 폭과 높이 중 하나만 지정하면, 가로 세로 비율을 유지하기 위해 다른 하나는 자동으로 계산됩니다.


열거형, 기본값: none

폭과 높이의 측정 단위. 이 중, pt, in, cmmm는 물리적 단위이고, nonepx는 비물리적 단위입니다. 이러한 구분은 output.size.input_dpioutput.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_ratio의 가로 정렬 = preserve_inset 또는 preserve_overflow.

가로 정렬
0.0 왼쪽 정렬된
0.5 가로로 정렬된
1.0 오른쪽 정렬된
0.01.0사이의 어떤 값이 될 수 있습니다.


부동, 0.0 ~ 1.0, 기본값: 0.5

output.size.aspect_ratio의 수직 정렬 = preserve_inset 또는 preserve_overflow.

수직 맞춤
0.0 상단 정렬된
0.5 수직 정렬된
1.0 하단 정렬된
0.01.0사이의 어떤 값이 될 수 있습니다.


부동, 1.0 ~ 1000000.0

사용 가능한 경우 파일에서 입력 이미지의 DPI를 읽습니다. 이 매개변수를 사용하면 해당 값을 오버라이드할 수 있습니다. 결과 값은 입력 이미지의 물리적 크기를 계산하는 데 사용되며, 출력에 대해 물리적 단위가 지정되었지만 명시적인 너비나 높이가 아닌 경우 출력 크기를 계산하는 데 사용됩니다.


부동, 1.0 ~ 1000000.0

출력 이미지의 DPI. 이것은 물리적 단위가 지정된 경우 비트맵 출력의 픽셀 크기를 계산하는 데 사용됩니다.

계정 상태 GET
https://api.vectorizer.ai/api/v1/account

구독 상태 및 남아 있는 크레딧과 같은 귀하의 계정 정보를 알아본다

추적 변수

없음

반응 특성

subscriptionPlan

귀하가 현재 구독한 구독 플랜 또는 "없음".

subscriptionState

현재 구독 상태 ('유효' 또는 '연체') 또는 구독하고 있지 않으면 '종료'.

credits

귀하의 계정에 남아있는 크레딧 숫자. 현재 구독하고 있지 않거나 API가 아닌 계획을 구독하고 있는 경우 0입니다. 분수일 수 있으므로 반드시 Double로 구문 분석하십시오.

사용자 이름 = API Id, 비밀번호 = API Secret

cURL

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

반응 예

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

API 변경 로그

날짜변경
2024. 3. 4. 타임아웃에 대한 섹션이 추가되었습니다.
2024. 1. 24. 계정 상태 엔드포인트를 추가했습니다. 계정 페이지에 최근 API 오류를 추가되었습니다. 모든 API 오류 응답 목록이 추가되었습니다.
2024. 1. 16. 오류 JSON 개체를 문서화했습니다.
2023. 10. 3. output.gap_filler.enabled=trueprocessing.max_colors에서 요청한 것보다 결과에 더 많은 색상을 가져온다는 점을 명확히 했습니다.
2023. 9. 20. mode 추가
2023. 8. 1. 다음 옵션과 함께 모든 기능을 갖춘 출력 크기 옵션 그룹을 추가했습니다: 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_dpioutput.size.output_dpi. 하나의 옵션이 있는 비트맵 출력 옵션 그룹을 추가했습니다: output.bitmap.anti_aliasing_mode.
2023. 6. 7. processing.max_colors 추가
2023. 5. 31. 크게 확장된 API 매개변수. API 엔드포인트를 업데이트했습니다.
2023. 3. 10. 초판.
API 키 가져오기