이미지 벡터화 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 챗봇

API 통합에 도움이 될 수 있는 사용자 지정 ChatGPT를 만들었습니다. API 문서에 대한 질문에 답변하고 사용 사례에 맞게 기본 설정 언어로 샘플 코드를 제공할 수 있습니다.

Chat with the Vectorizer.AI API Chatbot

챗봇은 베타 버전이며 실수를 합니다. 답을 다시 확인하고 코드를 수정하여 오류와 누락을 수정하도록 요청하세요.

이 API를 사용하는 방법

API는 다양한 사용 사례를 지원하도록 설계되었습니다. 다음은 몇 가지 일반적인 예입니다:

단일 이미지 비트맵을 제출하고, 벡터 결과를 얻으십시오, 완료

Vectorize(벡터화) 엔드포인트와 위의 코드 샘플을 사용하하십시오.

미리 보기 먼저 구매하기 전에 잠재 고객에게 미리보기를 보여주십시오.

판매를 위해 많은 API 호출을 해야 하는 경우, 실제로 고객을 전환할 때까지 비용이 저렴한 미리보기를 사용할 수 있습니다.

  1. mode=previewpolicy.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.00

API와의 통합 및 테스트는 무료이며, 구독이 필요하지 않습니다.

개발에는 mode=testmode=test_preview를 사용하십시오.

첫 페이지의 대화형 웹 앱을 사용하여 결과 품질을 평가할 수 있습니다.

미리보기0.20

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

미리보기는 입력한 것보다 4배 더 큰 PNG 이미지이며, 눈에 띄지 않는 워터마크가 함께 제공됩니다.

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

벡터화1.00 비트맵 이미지를 벡터 이미지로 벡터화합니다.
업그레이드 미리보기0.90 미리보기 API 호출 후 제작 결과를 다운로드합니다. 처음부터 벡터화하는 것보다 할인됩니다.
다운로드 포맷:0.10 다른 형식(예: SVG, PNG, PDF 등)의 결과를 다운로드합니다. 처음부터 벡터화하는 것보다 할인됩니다.
저장일0.01 첫날을 넘어서도 결과를 저장할 경우 하루당 가격은 무료입니다.

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

인증 및 보안

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에서 반환된 모든 오류 응답 목록도 있습니다.

반응 헤더

우리가 사용하는 사용자 정의 응답 헤더는 다음과 같습니다.

헤더설명
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 매개변수가 나와 있습니다. 각 매개변수에는 간단한 설명이 있지만 자세한 출력 옵션 문서를 확인해야 합니다.

추적 변수

입력 이미지는 다음의 한 종류이어야 합니다:


이진수

이진수 파일


문자열

Base64로 인코딩된 문자열 문자열의 최대 사이즈는 1 메가바이크 입니다.


문자열

가져와서 처리할 URL입니다.


이전 벡터화 API 호출에서 X-Image-Token 헤더에 반환된 이미지 토큰입니다(policy.retention_days > 0).

.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, test_preview

이러한 모드는 개발자가 서비스와 통합할 때 사용하도록 고안되었습니다. 모든 매개변수가 지원되지만 중요한 워터마킹이 있습니다.

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

우리는 응답에 X-Credits-Calculated 헤더를 포함시켰는데, 이를 통해 해당 제작 통화에 대해 얼마의 요금이 청구되었는지 확실히 알 수 있습니다.

무료

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

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


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

입력 이미지와 결과를 보관하는 날짜의 수입니다. policy.retention_days > 0를 지정하면 응답에 X-Image-Token 헤더가 포함됩니다.

이것의 주요 용도는 세 가지입니다.

  1. 미리보기 API 호출을 한 후 나중에 제작 결과를 빠르고 할인된 가격으로 다운로드할 수 있습니다.

  2. 이미지를 벡터화한 후 동일한 이미지와 처리 옵션에 대한 여러 출력 형식을 다운로드할 수 있으므로 처음부터 모두 벡터화할 필요가 없습니다. 이렇게 하면 크레딧과 대기 시간이 상당히 절약됩니다.

  3. 다른 처리 옵션으로 동일한 이미지를 다시 벡터화하려는 경우. 이렇게 하면 호출 대기 시간을 줄이고 대역폭을 절약할 수 있습니다.

보관 첫날은 무료이며, 그 이후로는 하루에 0.01 크레딧의 요금이 부과됩니다.

다운로드 엔드포인트도 참조하십시오.


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

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

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

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


형식: '[color][-> remapped][~ tolerance];'
#00000000;
#FFFFFF ~ 0.1;
#0000FF -> #00FF00;
#FF0000 -> #00FF00 ~ 0.1;

기본값:   (빈)

이는 결과의 색상을 제어하는 ​​매우 강력하고 유연한 메커니즘입니다.

팔레트 색상의 허용 범위 내에 있는 이미지에서 감지된 색상은 가장 가까운 팔레트 색상에 맞춰지며, 해당 팔레트 색상에 재매핑이 지정되어 있는 경우 재매핑됩니다. 일치하지 않는 색상은 변경되지 않습니다.

감지된 색상을 빨간색, 녹색, 파란색 중 가장 가까운 색상으로 맞추려면 다음을 사용하십시오:

#FF0000; 
#00FF00; 
#0000FF;

감지된 색상을 빨간색, 녹색, 파란색에 가깝게 정리하고 다른 색상은 변경하지 않으려면 다음을 사용하십시오:

#FF0000 ~ 0.02; 
#00FF00 ~ 0.02; 
#0000FF ~ 0.02;

감지된 색상을 빨간색에 가깝게 녹색으로 바꾸고 나머지는 변경하지 않으려면 다음을 사용하십시오:

#FF0000 -> #00FF00 ~ 0.02;

빨간색, 녹색, 파란색에 가까운 모든 색상을 해당 색상에 맞추고 다른 모든 색상은 투명한 검정색에 맞춰 결과에서 제거하려면 다음을 사용하십시오:

#FF0000 ~ 0.02; 
#00FF00 ~ 0.02; 
#0000FF ~ 0.02; 
#00000000; // Transparent => removed

색상

색상은 기본 CSS 색상 구문을 사용하여 지정됩니다. (부분적으로) 투명한 색상의 경우 #RRGGBBAA를 사용하는 것이 좋습니다. 불투명한 색상의 경우 #RRGGBB를 사용하는 것이 좋습니다.

완전히 투명한 색상은 결과에서 생략됩니다. 색상 재매핑 기능과 함께 이를 사용하여 결과에서 선택한 색상을 제거할 수 있습니다.

최대 1,024 색상을 사용할 수 있습니다.

공차

단위는 분수 ARGB 색상 거리입니다. 여기서 1.0은 불투명 빨간색(#FFFF0000)에서 불투명 검정색(#FF000000)까지의 거리입니다.

최대 공차는 투명한 검정색(#00000000)에서 불투명한 흰색(#FFFFFFFF)까지의 거리인 2.0입니다.

기본 허용 오차는 2.0이므로 기본적으로 감지된 색상은 멀리 있더라도 가장 가까운 팔레트 색상에 맞춰집니다. 사용자 정의 공차를 지정하여 스냅을 개별 팔레트 색상으로 제한할 수 있습니다.

0-255 범위의 색상 작업에 익숙하다면 255로 나누어 분수 값을 얻으십시오.


열거형, 기본값: 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. 이것은 물리적 단위가 지정된 경우 비트맵 출력의 픽셀 크기를 계산하는 데 사용됩니다.

다운로드 POST
https://api.vectorizer.ai/api/v1/download

이 엔드포인트를 사용하면 다음을 수행할 수 있습니다.

  1. 미리보기 API 호출 후 전체 제작 결과를 다운로드합니다.

    응답에 X-Receipt 헤더를 포함하므로 나중에 감소된 다운로드 형식 속도로 추가 출력 형식을 다운로드할 수 있습니다.

  2. 동일한 이미지와 처리 옵션에 대해 여러 출력 형식을 저렴한 다운로드 포맷 요금으로 다운로드하고, 이를 처음부터 벡터화할 필요가 없습니다.

추적 변수


이전 벡터화 API 호출에서 X-Image-Token 헤더에 반환된 이미지 토큰입니다(policy.retention_days > 0).


문자열
선택적

이전에 다운로드 API 호출에서 미리보기를 제작 결과로 업그레이드했을 때 X-Receipt 헤더에 반환된 영수증입니다.

미리보기 이미지 토큰을 제출할 때 영수증을 포함해야 다운로드 형식 요금을 할인받을 수 있습니다.


열거형, 기본값: 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. 이것은 물리적 단위가 지정된 경우 비트맵 출력의 픽셀 크기를 계산하는 데 사용됩니다.

제거 POST
https://api.vectorizer.ai/api/v1/delete

policy.retention_days > 0로 벡터화된 이미지는 요청한 기간 동안 저장되고 그 후 곧 자동으로 삭제됩니다.

일반적으로 이 엔드포인트를 호출할 필요는 없습니다. 보존 기간이 만료되기 전에 이미지를 삭제할 수 있도록 제공됩니다. 이미지를 일찍 삭제하더라도 남은 보관 기간에 대한 환불은 제공되지 않습니다.

추적 변수


이전 벡터화 API 호출에서 X-Image-Token 헤더에 반환된 이미지 토큰입니다(policy.retention_days > 0).

반응 특성

success

true 이미지 토큰이 명확히 삭제되었습니다.

반응 예

{
  "success" : true
}

계정 상태 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 vkyc67kqa27yidd:[secret]

반응 예

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

API 변경 로그

날짜변경
2024. 10. 1. API와의 통합을 지원하는 AI 챗봇이 추가되었습니다.
2024. 9. 23. 더 많은 운영 모드를 활성화하기 위해 API를 크게 확장했습니다. 이미지 토큰, 영수증, 통화당 요금 헤더, 다운로드 및 삭제 엔드포인트가 추가되었습니다.
2024. 6. 11. processing.palette 추가
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 키 가져오기