画像ベクター化 API

Vectorizer.AI は、本格的なビットマップトレーシング API です。 API は、全自動で、クラス最高の忠実度をもって、ピクセルからベクターへトレースします。

API キーを取得

クイックスタート

ビットマップ画像を POST して、ベクター化された結果を受け取ります。

$ curl https://ja.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://ja.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://ja.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://ja.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://ja.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://ja.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://ja.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://ja.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://ja.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://ja.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://ja.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://ja.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://ja.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://ja.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 ドキュメントに関する質問に答え、ユーザーの事例に合わせたサンプルコードをご希望の言語で提供することができます。

Vectorizer.AI API チャットボットによるチャットを利用する

チャットボットはベータ運営中であり、間違いを起こすことがあります。 回答を再確認し、間違いや欠落部を修正するよう質問を重ねて改訂させてください。

この API の使用方法

API は、多くの様々なユースケースに対応できるよう設計されています。 以下は、その中でも一般的な例です。

単一の画像 ビットマップ画像をアップロードしてベクター画像結果を取得。簡単に完了したい場合

ベクター化エンドポイントと上記のコードサンプルを使用します。

先にプレビュー 見込み客に対し、購入前にプレビューを表示する場合

販売前に多くの API コールを行わなければならない場合、見込み客を顧客に転換するまで低コストのプレビューを利用することができます。

  1. Vectorizer エンドポイントおよび 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 無料の初日の後、結果を保管する場合の 1 日当たりの価格。

サブスクリプション料金表については、価格ページを参照してください。

認証およびセキュリティ

API は、標準の HTTP 基本アクセス認証を使用します。 API に対するすべてのリクエストは、HTTPS で行い、API Id をユーザーとして、API シークレットをパスワードとする 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 クライアントライブラリによっては、HTTP ステータスの例外を 400599 の範囲で上げてきます。 それら例外を捕捉して、適切に処理する必要があります。

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


policy.retention_days > 0 の場合に、以前のベクター化 API コールの X-Image-Token ヘッダーで返される画像トークン。

.bmp、.gif、.jpeg、.png または .tiff ファイルでなければなりません。

最大画像アップロードサイズ(= 幅 × 高さ)は、33,554,432 ピクセルで、input.max_pixels に圧縮されます。


列挙型、デフォルト:production
Value Processing Mode Credits
production

このモードは運用版の使用を意図しており、すべてのパラメータがサポートされています。

1.00
preview

このモードは、購入前にエンドユーザーに見せたい場合に使用することを意図したものです。

矛盾するパラメータを無視して、目立たない透かしの入った 4 倍の PNG 結果を生成します。

0.20
test, test_preview

このモードは、このサービスと統合する場合に、開発者によって使用されることを意図したものです。 すべてのパラメータはサポートされていますが、目立つ透かしが入っています。

テスト結果は無料であり、有効なサブスクリプションは必要ありません。したがって、無料でサービスと統合することができます。

X-Credits-Calculated ヘッダーは、該当する運用版のコールで課せられるコストを明確に知ることができるよう、応答に含められています。

無料

整数、1003145828、デフォルト:2097252

最大入力画像サイズ(= ピクセル表示の幅 × 高さ) これより大きな画像は、処理前にこのサイズに圧縮されます。


整数、030、デフォルト:0

入力画像とその結果を保管する日数。 policy.retention_days > 0 が指定された場合、応答に X-Image-Token ヘッダーが含められます。

これは、主に 3 つの方法で利用できます。

  1. プレビュー API コールの実行後、運用版の結果を迅速に、割引価格でダウンロードすることができます。

  2. 画像をベクター化した後は、最初からベクター化することなく、複数の出力形式で、また異なる処理オプションを使って、同じ画像の結果をダウンロードすることができます。 これによって、クレジットと遅延の両面で著しい節減を実現できます。

  3. 同じ画像を別の処理オプションでベクター化する場合。 これによって、コールの遅延と処理能力を節減することができます。

ストレージの初日は無料です。その後は、1 日当たり 0.01 クレジットが適用されます。

ダウンロードエンドポイントも参照してください。


整数、0256、デフォルト:0

結果に使用する最大色数。

0 とは、無制限を意味します。 1 および 2 は、両方とも白黒などの 2 色を意味します。 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)までの距離です。

最大の許容差は 2.0 で、これは透明な黒(#00000000)から透明な白(#FFFFFFFF)までの距離です。

デフォルトの許容差は、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

3 次ベジェ曲線を許容するかどうか。 詳細


ブール型、デフォルト:true

円弧を許容するかどうか。 詳細


ブール型、デフォルト:true

楕円弧を許容するかどうか。 詳細


浮動小数型、0.0011.0、デフォルト:0.1

曲線とそれを近似する直線間のピクセル表示の最大距離。 詳細

隙間補完:


ブール型、デフォルト:true

ベクタービューワでよく発生する白線描画バグに対処するかどうか。 詳細


ブール型、デフォルト:false

隙間補完のストロークを切り取るかどうか。 output.shape_stacking=stacked の場合、切り取るか、非スケーリングストロークを使用するか。 詳細


ブール型、デフォルト:true

非スケーリング隙間補完ストロークを使用するかどうか。 output.shape_stacking=stacked の場合、切り取るか、非スケーリングストロークを使用するか。 詳細


浮動小数型、0.05.0、デフォルト:2.0

隙間補完ストロークの幅。 詳細

output.draw_style が、stroke_shapes または stroke_edges の場合のストロークスタイル


ブール型、デフォルト:true

非スケーリングストロークを使用するかどうか。 詳細


ブール型、デフォルト:false

上書き色または図形の推定色を使用するか。 詳細


形式:「#RRGGBB」、例:#FF00FF、デフォルト:#000000

上書き色。 詳細


浮動小数型、0.05.0、デフォルト:1.0

ストロークの幅。 詳細

出力サイズ:


浮動小数型、0.01000.0

均一スケーリング係数 指定されると、これが output.size.width および output.size.height に優先します。


浮動小数型、0.01.0E12

output.size.unit で指定された単位による幅。 幅および高さの一方かが指定されると、他方はアスペクト比が保持されるよう自動的に計算されます。


浮動小数型、0.01.0E12

output.size.unit で指定された単位による高さ。 幅および高さの一方かが指定されると、他方はアスペクト比が保持されるよう自動的に計算されます。


列挙型、デフォルト:none

幅および高さの測定単位。 この内、ptincm、および 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.01.0、デフォルト:0.5

output.size.aspect_ratio = preserve_inset または preserve_overflow の水平方向のアライメント

価値 水平方向のアライメント
0.0 左揃え
0.5 水平方向の中央揃え
1.0 右揃え
0.01.0 の間のどの値でも指定できます。


浮動小数型、0.01.0、デフォルト:0.5

output.size.aspect_ratio = preserve_inset または preserve_overflow の垂直方向のアライメント。

価値 縦のアライメント
0.0 上揃え
0.5 垂直方向の中央揃え
1.0 下揃え
0.01.0 の間のどの値でも指定できます。


浮動小数型、1.01000000.0

可能な場合、入力画像の DPI はファイルから読み込まれます。 このパラメータは、その値を上書きすることができます。 その結果の値は、入力画像の物理サイズを計算するのに使用されます。この物理サイズは、出力に物理単位が指定されており、幅または高さが明示的に指定されていない場合、出力サイズを計算するのに使用されます。


浮動小数型、1.01000000.0

出力画像の DPI。 これは、物理単位が指定されていない場合に、ビットマップ出力のピクセルサイズを計算するのに使用されます。

ダウンロード POST
https://api.vectorizer.ai/api/v1/download

このエンドポイントによって、以下を行えるようになります。

  1. プレビュー API コールの後、運用版の結果をダウンロードすること。

    応答には、X-Receipt ヘッダーが含められるので、その後は割引ダウンロード形式料金でさらなる出力形式の結果をダウンロードすることができます。

  2. 同じ画像について、最初からベクター化することなく、割引ダウンロード形式料金で、複数の出力形式により、また異なる処理オプションを使って、結果をダウンロードすること。

パラメータ


policy.retention_days > 0 の場合に、以前のベクター化 API コールの X-Image-Token ヘッダーで返される画像トークン。


文字列
オプション

プレビューを運用版の結果にアップグレードする以前のダウンロード 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

3 次ベジェ曲線を許容するかどうか。 詳細


ブール型、デフォルト:true

円弧を許容するかどうか。 詳細


ブール型、デフォルト:true

楕円弧を許容するかどうか。 詳細


浮動小数型、0.0011.0、デフォルト:0.1

曲線とそれを近似する直線間のピクセル表示の最大距離。 詳細

隙間補完:


ブール型、デフォルト:true

ベクタービューワでよく発生する白線描画バグに対処するかどうか。 詳細


ブール型、デフォルト:false

隙間補完のストロークを切り取るかどうか。 output.shape_stacking=stacked の場合、切り取るか、非スケーリングストロークを使用するか。 詳細


ブール型、デフォルト:true

非スケーリング隙間補完ストロークを使用するかどうか。 output.shape_stacking=stacked の場合、切り取るか、非スケーリングストロークを使用するか。 詳細


浮動小数型、0.05.0、デフォルト:2.0

隙間補完ストロークの幅。 詳細

output.draw_style が、stroke_shapes または stroke_edges の場合のストロークスタイル


ブール型、デフォルト:true

非スケーリングストロークを使用するかどうか。 詳細


ブール型、デフォルト:false

上書き色または図形の推定色を使用するか。 詳細


形式:「#RRGGBB」、例:#FF00FF、デフォルト:#000000

上書き色。 詳細


浮動小数型、0.05.0、デフォルト:1.0

ストロークの幅。 詳細

出力サイズ:


浮動小数型、0.01000.0

均一スケーリング係数 指定されると、これが output.size.width および output.size.height に優先します。


浮動小数型、0.01.0E12

output.size.unit で指定された単位による幅。 幅および高さの一方かが指定されると、他方はアスペクト比が保持されるよう自動的に計算されます。


浮動小数型、0.01.0E12

output.size.unit で指定された単位による高さ。 幅および高さの一方かが指定されると、他方はアスペクト比が保持されるよう自動的に計算されます。


列挙型、デフォルト:none

幅および高さの測定単位。 この内、ptincm、および 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.01.0、デフォルト:0.5

output.size.aspect_ratio = preserve_inset または preserve_overflow の水平方向のアライメント

価値 水平方向のアライメント
0.0 左揃え
0.5 水平方向の中央揃え
1.0 右揃え
0.01.0 の間のどの値でも指定できます。


浮動小数型、0.01.0、デフォルト:0.5

output.size.aspect_ratio = preserve_inset または preserve_overflow の垂直方向のアライメント。

価値 縦のアライメント
0.0 上揃え
0.5 垂直方向の中央揃え
1.0 下揃え
0.01.0 の間のどの値でも指定できます。


浮動小数型、1.01000000.0

可能な場合、入力画像の DPI はファイルから読み込まれます。 このパラメータは、その値を上書きすることができます。 その結果の値は、入力画像の物理サイズを計算するのに使用されます。この物理サイズは、出力に物理単位が指定されており、幅または高さが明示的に指定されていない場合、出力サイズを計算するのに使用されます。


浮動小数型、1.01000000.0

出力画像の DPI。 これは、物理単位が指定されていない場合に、ビットマップ出力のピクセルサイズを計算するのに使用されます。

削除 POST
https://api.vectorizer.ai/api/v1/delete

policy.retention_days > 0 によってベクター化された画像は、要請された期間保管され、その後まもなく自動的に削除されます。

通常、このエンドポイントをコールする必要はありません。 これは、保管期間が過ぎる前に画像を削除することができるよう提供されているものです。 画像を早く削除したことで、残りの保管期間に対する払い戻しはありません。

パラメータ


policy.retention_days > 0 の場合に、以前のベクター化 API コールの X-Image-Token ヘッダーで返される画像トークン。

応答属性

success

true 画像トークンは確実に削除されました。

応答の例

{
  "success" : true
}

アカウントステータス GET
https://api.vectorizer.ai/api/v1/account

サブスクリプション状況やクレジット残数などのアカウントに関する基本的な情報を取得してください。

パラメータ

なし

応答属性

subscriptionPlan

現在サブスクライブしているプランまたは「なし」。

subscriptionState

現在のサブスクリプション状態(「アクティブ」または「期限切れ」)あるいは、サブスクライブしていない場合は「終了」。

credits

アカウントの API クレジット残数。 現在サブスクライブしていない場合、または非 API プランにサブスクライブしている場合は 0。 小数の可能性もあります。倍精度浮動小数点数で取り扱うようにしてください。

ユーザー名 = API Id、パスワード = API シークレット

cURL

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

応答の例

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

API 変更ログ

日付変更
2024/10/01 API との統合を支援するため、AI チャットボットを追加。
2024/09/23 より多くの動作モードを可能とするよう API が大幅に拡充されました。 画像トークン、レシート、コールごとの課金ヘッダー、エンドポイントのダウンロードおよび削除が追加されました。
2024/06/11 processing.palette を追加
2024/03/04 タイムアウトに関するセクションを追加。
2024/01/24 アカウントステータスエンドポイントを追加しました。 最近の API エラーをアカウントページに追加しました。 すべての API エラー応答リストを追加しました。
2024/01/16 エラー JSON オブジェクトを文書化しました。
2023/10/03 output.gap_filler.enabled=true では、processing.max_colors でリクエストされた場合より、結果により多くの色が含まれることを明確化。
2023/09/20 mode を追加
2023/08/01 フル機能の出力サイズオプショングループとして、次のオプションにが追加されました。output.size.scaleoutput.size.widthoutput.size.heightoutput.size.unitoutput.size.aspect_ratiooutput.size.align_xoutput.size.align_youtput.size.input_dpioutput.size.output_dpi。 ビットマップオプショングループとして次の 1 つのオプションが追加されました。output.bitmap.anti_aliasing_mode
2023/06/07 processing.max_colors を追加
2023/05/31 API パラメータを大幅に拡張。 API エンドポイントを更新。
2023/03/10 初回のリリース。
API キーを取得