Vektorisasi Gambar API

Vectorizer.AI menawarkan API pelacakan bitmap lengkap. API melacak piksel ke vektor sepenuhnya secara otomatis dan dengan fidelitas terbaik di kelasnya.

Dapatkan Kunci API

Mulai cepat

POST gambar bitmap dan dapatkan hasil vektorisasi kembali:

$ curl https://id.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://id.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://id.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://id.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://id.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://id.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://id.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://id.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://id.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://id.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://id.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://id.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://id.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://id.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

Chatbot API

Kami telah membuat ChatGPT khusus yang dapat membantu Anda dengan integrasi API Anda. Dapat menjawab pertanyaan tentang dokumentasi API, dan menyediakan contoh kode dalam bahasa pilihan Anda yang disesuaikan dengan kasus penggunaan Anda.

Ngobrol dengan Chatbot API Vectorizer.AI

Chatbot masih dalam tahap beta dan masih bisa melakukan kesalahan. Periksa kembali jawabannya, dan minta untuk merevisi kode guna memperbaiki kesalahan dan kelalaian.

Cara Menggunakan API Ini

API dirancang untuk mendukung banyak kasus penggunaan yang berbeda. Berikut ini beberapa yang umum:

Gambar Tunggal Kirim bitmap, dapatkan hasil vektor, selesai

Gunakan titik akhir Vektorisasi dan contoh kode di atas.

Pratinjau Pertama Tunjukkan pratinjau kepada prospek Anda sebelum mereka membeli

Jika Anda perlu membuat banyak panggilan API untuk melakukan penjualan, Anda dapat menggunakan pratinjau biaya yang lebih rendah hingga Anda benar-benar mengonversi pelanggan.

  1. Gunakan titik akhir Vektorisasi dengan mode=preview dan policy.retention_days > 0 untuk mendapatkan pratinjau, pastikan untuk mempertahankan Token Gambar yang dikembalikan dalam header respons X-Image-Token.

  2. Setelah mengonversi, gunakan titik akhir Unduh dengan Token Gambar untuk mengunduh hasil lengkap.

  3. Opsional: jika Anda memerlukan format hasil tambahan (misalnya PNG, PDF, dll), pastikan untuk menyimpan Tanda Terima yang dikembalikan di header respons unduhan X-Receipt. Kemudian gunakan titik akhir Unduh dengan Token Gambar dan Tanda Terima untuk mengunduh format yang tersisa.

Multi-Format Misalnya, Anda memerlukan hasil PNG dan SVG

  1. Gunakan titik akhir Vektorisasi dengan policy.retention_days > 0 untuk mendapatkan hasil pertama, pastikan untuk mempertahankan Token Gambar yang dikembalikan dalam header respons X-Image-Token.

  2. Gunakan titik akhir Unduh dengan Token Gambar untuk mengunduh format lainnya.

Multi-Opsi Anda perlu memproses setiap gambar dengan beberapa opsi pemrosesan

  1. Gunakan titik akhir Vektorisasi dengan policy.retention_days > 0 untuk mendapatkan hasil pertama, pastikan untuk mempertahankan Token Gambar yang dikembalikan dalam header respons X-Image-Token.

  2. Gunakan titik akhir Vektorisasi dengan Token Gambar untuk mengulangi opsi pemrosesan yang tersisa yang Anda perlukan.

  3. Alternatifnya Anda dapat memproses setiap gambar satu per satu dan tidak perlu khawatir mengenai Token Gambar. Token Gambar menghemat sedikit bandwidth dan latensi.

Harga

TindakanKreditKeterangan
Pengujian0.00

Integrasi dan pengujian API gratis, tidak perlu berlangganan.

Gunakan mode=test dan mode=test_preview untuk pengembangan.

Anda dapat menilai kualitas hasil menggunakan Aplikasi Web interaktif di halaman depan.

Pratinjau0.20

Kami menawarkan hasil pratinjau yang dapat Anda tunjukkan kepada pengguna akhir sebelum mereka melakukan pembelian.

Pratinjau adalah gambar PNG empat kali lebih besar dari masukan Anda, dan dilengkapi dengan tanda air yang tersembunyi.

Gunakan mode=preview untuk mendapatkan hasil pratinjau.

Vektorisasi1.00 Ubah gambar bitmap menjadi gambar vektor.
Pratinjau Peningkatan0.90 Unduh hasil produksi setelah panggilan API pratinjau. Didiskon dibandingkan dengan memvektorisasinya dari awal.
Format Unduhan0.10 Unduh format lain (misalnya SVG, PNG, PDF, dll) dari hasil tersebut. Didiskon dibandingkan dengan memvektorisasinya dari awal.
Hari Penyimpanan0.01 Harga per hari untuk menyimpan hasil setelah hari pertama, gratis.

Silakan lihat halaman harga untuk paket berlangganan.

Otentikasi & Keamanan

API menggunakan otentikasi akses dasar HTTP standar. Semua permintaan ke API harus dilakukan melalui HTTPS dan menyertakan Kredensial API Anda, dengan ID API sebagai pengguna dan Rahasia API sebagai kata sandi.

Pustaka klien http Anda harus mendukung Server Name Indication (SNI) untuk membuat permintaan berhasil. Jika Anda mendapatkan kesalahan jabat tangan yang aneh, kemungkinan besar inilah masalahnya.

Pembatasan Tarif

Penggunaan API dibatasi tarif dengan tunjangan yang murah hati dan tidak ada batas atas yang keras.

Selama operasi normal yang digerakkan oleh pengguna akhir, Anda tidak akan mengalami pembatasan kecepatan karena penggunaan cenderung surut dan mengalir dengan cara yang ditangani layanan dengan baik.

Namun, untuk pekerjaan batch kami sarankan untuk memulai dengan paling banyak 5 utas, menambahkan 1 utas baru setiap 5 menit hingga Anda mencapai tingkat paralelisme yang diinginkan. Harap hubungi sebelum memulai jika Anda membutuhkan lebih dari 100 rangkaian pesan bersamaan.

Jika Anda mengirimkan terlalu banyak permintaan, Anda akan mulai mendapatkan jawaban 429 Too Many Requests. Jika ini terjadi, Anda harus menerapkan linear back off: pada respons pertama seperti itu, tunggu 5 detik hingga mengirimkan permintaan berikutnya. Pada jawaban 429 kedua berturut-turut, tunggu 2*5=10 detik hingga mengirimkan permintaan berikutnya. Yang ketiga tunggu 3*5=15 detik, dan seterusnya.

Anda dapat mengatur ulang penghitung mundur setelah permintaan berhasil, dan Anda harus menerapkan mundur pada basis per utas (yaitu utas harus beroperasi secara independen satu sama lain).

Batas waktu

Meskipun permintaan API biasanya diselesaikan dalam hitungan detik, waktu pemrosesan yang lebih lama mungkin terjadi selama lonjakan beban sementara.

Untuk memastikan pustaka klien Anda tidak menghentikan permintaan API sebelum waktunya, pustaka tersebut harus dikonfigurasi dengan waktu tunggu tidak aktif setidaknya 180 detik.

Kesalahan JSON

Kami menggunakan status HTTP konvensional untuk menunjukkan keberhasilan atau kegagalan permintaan API, dan menyertakan informasi kesalahan penting dalam Objek JSON Kesalahan yang dikembalikan.

Kami berusaha untuk selalu mengembalikan Objek JSON Kesalahan dengan permintaan apa pun yang bermasalah. Namun, secara teoritis selalu mungkin terjadi kegagalan server internal yang menyebabkan respons kesalahan non-JSON.

Atribut

statusStatus HTTP dari respons, diulang di sini untuk membantu proses debug.
codeVectorizer.AI kode kesalahan internal.
messagePesan kesalahan yang dapat dibaca manusia, dimaksudkan untuk membantu dalam proses debug.

Jika status HTTP untuk permintaan Anda adalah 200, maka Objek JSON Kesalahan tidak akan dikembalikan, dan Anda dapat berasumsi bahwa permintaan secara umum berhasil.

Beberapa pustaka Klien HTTP meningkatkan pengecualian untuk status HTTP di rentang 400-599. Anda perlu menangkap pengecualian tersebut dan menanganinya dengan tepat.

HTTP StatusMakna
200-299

Sukses

400-499

Ada masalah dengan informasi yang diberikan dalam permintaan (mis., Ada parameter yang hilang). Harap tinjau pesan kesalahan untuk mencari tahu cara memperbaikinya.

500-599

Terjadi Vectorizer.AI kesalahan internal. Tunggu beberapa saat kemudian coba lagi, dan jika masalah tetap ada, silakan email kami.

Contoh Kesalahan Jawaban

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

Kesalahan API terbaru tercantum di laman akun Anda untuk kenyamanan proses debug Anda.

Ada juga daftar semua respons kesalahan yang dihasilkan oleh API.

Contoh Jawaban

Berikut ini adalah header respons khusus yang kami gunakan:

HeaderKeterangan
X-Image-Token

Dikembalikan ketika permintaan vektorisasi Anda memiliki policy.retention_days > 0. Dapat digunakan untuk:

  1. Unduh hasil produksi setelah panggilan API pratinjau dengan potongan harga dibandingkan dengan membuat vektor dari awal.

  2. Mengunduh format tambahan (misalnya SVG, PNG, PDF, dll) dari hasil dengan kecepatan yang lebih rendah dibandingkan dengan memvektorkannya dari awal.

  3. Vektorisasi ulang gambar yang sama dengan opsi pemrosesan yang berbeda.

X-Receipt

Dikembalikan saat Anda mengunduh hasil produksi menggunakan Token Gambar pratinjau. Dapat digunakan untuk mengunduh format tambahan (misalnya SVG, PNG, PDF, dll) dari hasil pada kecepatan format unduhan, bukan kecepatan pratinjau pemutakhiran.

X-Credits-Calculated

Dikembalikan dengan permintaan pengujian untuk menunjukkan biaya yang akan dikeluarkan jika itu adalah permintaan biasa.

X-Credits-Charged

Dikembalikan dengan semua permintaan untuk menunjukkan biaya yang dikeluarkan. Selalu 0 untuk permintaan pengujian.

Vektorisasi POST
https://api.vectorizer.ai/api/v1/vectorize

Untuk membuat vektor gambar, Anda melakukan unggahan file HTTP POST standar. Harap diingat Jenis Isi harus multipart/form-data saat mengunggah file biner.

Tabel di bawah menjabarkan semua parameter API dalam bentuk coba-sekarang yang berfungsi. Setiap parameter memiliki deskripsi singkat, tetapi pastikan untuk memeriksa Dokumentasi Opsi Keluaran mendetail.

Parameter

Gambar masukan harus disediakan sebagai salah satu dari:


Biner

File biner.


String

String berenkode base64. String bisa paling banyak 1 megabyte panjangnya.


String

URL untuk diambil dan diproses.


Token Gambar, dikembalikan dalam header X-Image-Token dalam panggilan API vektorisasi sebelumnya di mana policy.retention_days > 0.

Harus berupa file .bmp, .gif, .jpeg, .png, atau .tiff.

Ukuran upload gambar maksimum (= lebar × tinggi) adalah 33.554.432 pixels, yang menyusut menjadi input.max_pixels .


Enum, default: production
Value Processing Mode Credits
production

Mode ini ditujukan untuk penggunaan produksi dan semua parameter didukung.

1.00
preview

Mode ini ditujukan ketika Anda ingin menampilkan pratinjau kepada pengguna akhir sebelum mereka melakukan pembelian.

Ini menghasilkan hasil PNG 4x dengan tanda air yang tersembunyi, mengabaikan parameter yang bertentangan.

0.20
test, test_preview

Mode ini ditujukan untuk digunakan pengembang saat berintegrasi dengan layanan. Semua parameter didukung, namun terdapat watermark yang signifikan.

Hasil tes gratis dan tidak memerlukan langganan aktif, sehingga Anda dapat berintegrasi dengan layanan ini secara gratis.

Kami menyertakan tajuk X-Credits-Calculated dalam respons agar Anda dapat mengetahui dengan pasti berapa biaya yang akan dikenakan untuk panggilan produksi terkait.

Gratis

Bilangan bulat, 100 hingga 3145828, default: 2097252

Ukuran gambar input maksimum (= lebar × tinggi dalam piksel). Gambar yang lebih besar dari ini akan diperkecil ke ukuran ini sebelum diproses.


Bilangan bulat, 0 hingga 30, default: 0

Jumlah hari untuk menyimpan gambar masukan dan hasilnya. Bila Anda menentukan policy.retention_days > 0 kami menyertakan header X-Image-Token dalam respons.

Ini memiliki tiga kegunaan utama:

  1. Setelah membuat panggilan API pratinjau, Anda nantinya dapat mengunduh hasil produksi dengan cepat dan dengan diskon.

  2. Setelah memvektorisasi gambar, Anda dapat mengunduh beberapa format keluaran untuk gambar yang sama dan opsi pemrosesan tanpa harus memvektorisasi semuanya dari awal. Ini menghemat secara signifikan pada kredit dan latensi.

  3. Ketika Anda ingin melakukan vektorisasi ulang pada gambar yang sama dengan opsi pemrosesan yang berbeda. Hal ini memungkinkan Anda mengurangi latensi panggilan dan menghemat bandwidth.

Hari pertama penyimpanan gratis, kemudian dikenakan biaya 0,01 credits per hari.

Lihat juga titik akhir Unduh.


Bilangan bulat, 0 hingga 256, default: 0

Jumlah maksimum warna yang akan digunakan untuk hasilnya.

0 berarti tidak terbatas. 1 dan 2 keduanya berarti dua warna, mis. hitam dan putih. N>=2 berarti bahwa jumlah warna.

Perhatikan jika output.gap_filler.enabled=true (default) maka hasilnya juga akan berisi campuran warna yang dipilih. Nonaktifkan pengisi celah untuk mendapatkan hasil hanya dengan warna yang dipilih.


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

Default:   (kosong)

Ini adalah mekanisme yang sangat kuat dan fleksibel untuk mengontrol warna pada hasilnya.

Warna yang terdeteksi pada gambar yang berada dalam toleransi warna palet mana pun akan diambil ke warna palet terdekat, dan dipetakan ulang jika warna palet tersebut memiliki pemetaan ulang yang ditentukan. Warna yang tidak cocok dibiarkan tidak berubah.

Contoh

Untuk mengambil warna yang terdeteksi ke warna merah, hijau, dan biru terdekat, gunakan:

#FF0000; 
#00FF00; 
#0000FF;

Untuk membersihkan warna yang terdeteksi mendekati merah, hijau, dan biru, namun membiarkan warna lain tidak berubah, gunakan:

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

Untuk mengubah warna yang terdeteksi mendekati merah menjadi hijau, membiarkan warna lainnya tidak berubah, gunakan:

#FF0000 -> #00FF00 ~ 0.02;

Untuk memasukkan apa pun yang mendekati warna merah, hijau, dan biru ke warna tersebut, tetapi mengubah semua warna lain menjadi hitam transparan (sehingga menghilangkannya dari hasil), gunakan:

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

Warna

Warna ditentukan menggunakan sintaks warna CSS dasar. Untuk warna (sebagian) transparan kami sarankan menggunakan #RRGGBBAA. Untuk warna buram kami sarankan menggunakan #RRGGBB.

Warna yang sepenuhnya transparan dihilangkan dari hasilnya. Bersama dengan kemampuan pemetaan ulang warna, Anda dapat menggunakannya untuk menghapus warna tertentu dari hasil.

Anda dapat menggunakan secara maksimal 1.024 warna

Toleransi

Unit ini berada dalam jarak warna ARGB pecahan, dengan 1,0 adalah jarak dari merah buram (#FFFF0000) ke hitam buram (#FF000000).

Toleransi maksimumnya adalah 2.0, yaitu jarak dari hitam transparan (#00000000) ke putih buram (#FFFFFFFF).

Toleransi defaultnya adalah 2,0, sehingga secara default warna yang terdeteksi akan sesuai dengan warna palet terdekatnya, meskipun jaraknya jauh. Anda dapat membatasi pengambilan pada warna palet individual dengan menentukan toleransi khusus.

Jika Anda terbiasa bekerja dengan warna dalam kisaran 0-255, bagi saja dengan 255 untuk mendapatkan nilai pecahannya.


Float, 0.0 hingga 100.0, default: 0.125

Area minimum bentuk dalam piksel. Bentuk yang lebih kecil dari ini dibuang.


Enum, default: svg

Format file keluaran.

Pilihan SVG:


Enum, default: svg_1_1

Tentukan atribut versi SVG di tag SVG. Perincian


Boolean, default: false

Apakah akan menyertakan atribut ukuran gambar dalam tag SVG. Saat pemirsa true biasanya merender SVG pada ukuran tetap. Saat pemirsa false biasanya membiarkan skala SVG menyesuaikan dengan ruang yang tersedia. Perincian


Boolean, default: false

Saat true kami menonaktifkan opsi yang tidak dapat diimpor oleh Adobe Illustrator. Perincian

Opsi DXF:


Enum, default: lines_and_arcs

Pembaca DXF sangat bervariasi dalam kemampuan mereka. Opsi ini memungkinkan Anda untuk membatasi output ke primitif gambar yang benar-benar didukung oleh pembaca DXF Anda. Perincian

Pilihan Bitmap:

Applies only when output.file_format=png


Enum, default: anti_aliased
Value Anti-Aliasing Mode
anti_aliased Piksel di sepanjang batas antara bentuk memiliki warna yang dicampur sesuai dengan fraksi area piksel yang dicakup oleh setiap bentuk.
aliased Piksel diberi warna bentuk yang berisi pusat geometris piksel.

Enum, default: fill_shapes

Tentukan bagaimana Anda ingin output digores atau diisi. Ada perbedaan halus antara membelai bentuk dan membelai tepi di antara mereka. Silakan lihat dokumentasi terperinci untuk penjelasan


Enum, default: cutouts

Menentukan apakah bentuk ditempatkan dalam potongan pada bentuk di bawah (cutouts) atau jika ditumpuk di atas satu sama lain (stacked). Perincian


Enum, default: none
Value Shape grouping
none Tidak ada pengelompokan
color Berdasarkan warna, berinteraksi dengan output.shape_stacking
parent Dengan mengandung bentuk
layer Dengan menggambar urutan Lapisan
Perincian

Boolean, default: false

Ratakan lingkaran, elips, persegi panjang, segitiga, dan bintang yang teridentifikasi menjadi kurva biasa. Perincian

Kurva:


Boolean, default: true

Apakah akan mengizinkan Kurva Bézier Kuadrat. Perincian


Boolean, default: true

Apakah akan mengizinkan Kurva Bézier Kubik. Perincian


Boolean, default: true

Apakah akan mengizinkan Busur Lingkaran. Perincian


Boolean, default: true

Apakah akan mengizinkan Busur Elips. Perincian


Float, 0.001 hingga 1.0, default: 0.1

Kami umumnya mencoba mengganti jenis kurva yang tidak diizinkan dengan tipe kurva yang diizinkan. See the details for the precise fallback sequences.

Namun, jika Anda melarang cukup banyak dari mereka, kami perlu memperkirakannya dengan segmen garis. Parameter ini menentukan jarak maksimum dalam piksel antara kurva dan garis yang memperkirakannya. Perincian

Pengisi Celah tau Gap Filler:


Boolean, default: true

Apakah akan bekerja di sekitar bug rendering garis putih yang umum di pemirsa vektor. Perincian


Boolean, default: false

Apakah akan memotong goresan pengisi celah. Saat output.shape_stacking=stacked memotong atau menggunakan goresan non-skala. Perincian


Boolean, default: true

Apakah akan menggunakan goresan pengisi celah non-skala. Saat output.shape_stacking=stacked memotong atau menggunakan goresan non-skala. Perincian


Float, 0.0 hingga 5.0, default: 2.0

Lebar goresan pengisi celah. Perincian

Gaya goresan saat output.draw_style adalah stroke_shapes atau stroke_edges


Boolean, default: true

Apakah akan menggunakan goresan non-skala. Perincian


Boolean, default: false

Apakah akan menggunakan warna pengganti, atau perkiraan warna bentuk. Perincian


Format: '#RRGGBB', misalnya #FF00FF, standar: #000000

Warna pengganti. Perincian


Float, 0.0 hingga 5.0, default: 1.0

Lebar goresan. Perincian

Ukuran keluaran:


Float, 0.0 hingga 1000.0

Faktor skala seragam. Jika ditentukan, ini lebih diutamakan daripada output.size.width dan output.size.height.


Float, 0.0 hingga 1.0E12

Lebar dalam satuan yang ditentukan oleh output.size.unit. Jika hanya satu lebar dan tinggi yang ditentukan, yang lain dihitung secara otomatis untuk mempertahankan rasio aspek.


Float, 0.0 hingga 1.0E12

Tinggi dalam satuan yang ditentukan oleh output.size.unit. Jika hanya satu lebar dan tinggi yang ditentukan, yang lain dihitung secara otomatis untuk mempertahankan rasio aspek.


Enum, default: none

Satuan ukuran lebar dan tinggi. Di antaranya, pt, in, cm, dan mm adalah satuan fisik, dan none dan px adalah satuan non-fisik. Perbedaan ini berinteraksi dengan output.size.input_dpi dan output.size.output_dpi.


Enum, default: preserve_inset

Nilai Aturan Penskalaan
preserve_inset Skalakan secara seragam agar sesuai dengan dimensi yang lebih rapat, sehingga tidak ada limpahan tetapi ruang kosong di dimensi lain
preserve_overflow Skalakan secara seragam agar sesuai dengan dimensi yang kurang rapat, melebihi dimensi yang lebih rapat
stretch Skala tidak seragam agar sesuai dengan lebar dan tinggi yang ditentukan
Untuk opsi preserve, posisi dalam dimensi tidak dibatasi dikontrol oleh output.size.align_x atau output.size.align_y.


Float, 0.0 hingga 1.0, default: 0.5

Perataan horizontal untuk output.size.aspect_ratio = preserve_inset atau preserve_overflow.

Nilai Penjajaran Horisontal
0.0 Rata kiri
0.5 Berpusat secara horizontal
1.0 Rata kanan
Dapat berupa nilai apa pun antara 0.0 dan 1.0.


Float, 0.0 hingga 1.0, default: 0.5

Perataan vertikal untuk output.size.aspect_ratio = preserve_inset atau preserve_overflow.

Nilai Penjajaran Vertikal
0.0 Rata atas
0.5 Rata tengah
1.0 Rata bawah
Dapat berupa nilai apa pun antara 0.0 dan 1.0.


Float, 1.0 hingga 1000000.0

DPI gambar input dibaca dari file bila tersedia. Parameter ini memungkinkan Anda untuk mengganti nilai tersebut. Nilai yang dihasilkan digunakan untuk menghitung ukuran fisik dari gambar masukan, yang digunakan untuk menghitung ukuran keluaran jika unit fisik ditentukan untuk keluaran, tetapi bukan lebar atau tinggi yang eksplisit.


Float, 1.0 hingga 1000000.0

DPI gambar keluaran. Ini digunakan untuk menghitung ukuran piksel dari keluaran bitmap ketika unit fisik ditentukan.

Unduh POST
https://api.vectorizer.ai/api/v1/download

Titik akhir ini memungkinkan Anda untuk:

  1. Unduh hasil produksi penuh setelah panggilan API pratinjau.

    Kami menyertakan tajuk X-Receipt dalam respons sehingga Anda dapat mengunduh format keluaran tambahan dengan kecepatan format unduhan yang dikurangi setelahnya.

  2. Unduh berbagai format keluaran untuk gambar dan opsi pemrosesan yang sama dengan kecepatan format unduhan yang dikurangi dan tanpa harus membuat vektorisasi semuanya dari awal.

Parameter


Token Gambar, dikembalikan dalam header X-Image-Token dalam panggilan API vektorisasi sebelumnya di mana policy.retention_days > 0.


String
Pilihan

Tanda terima, dikembalikan dalam header X-Receipt dalam panggilan API unduhan sebelumnya tempat Anda memutakhirkan pratinjau ke hasil produksi.

Saat mengirimkan Token Gambar pratinjau, Anda harus menyertakan tanda terima untuk mendapatkan kecepatan format unduhan yang dikurangi.


Enum, default: svg

Format file keluaran.

Pilihan SVG:


Enum, default: svg_1_1

Tentukan atribut versi SVG di tag SVG. Perincian


Boolean, default: false

Apakah akan menyertakan atribut ukuran gambar dalam tag SVG. Saat pemirsa true biasanya merender SVG pada ukuran tetap. Saat pemirsa false biasanya membiarkan skala SVG menyesuaikan dengan ruang yang tersedia. Perincian


Boolean, default: false

Saat true kami menonaktifkan opsi yang tidak dapat diimpor oleh Adobe Illustrator. Perincian

Opsi DXF:


Enum, default: lines_and_arcs

Pembaca DXF sangat bervariasi dalam kemampuan mereka. Opsi ini memungkinkan Anda untuk membatasi output ke primitif gambar yang benar-benar didukung oleh pembaca DXF Anda. Perincian

Pilihan Bitmap:

Applies only when output.file_format=png


Enum, default: anti_aliased
Value Anti-Aliasing Mode
anti_aliased Piksel di sepanjang batas antara bentuk memiliki warna yang dicampur sesuai dengan fraksi area piksel yang dicakup oleh setiap bentuk.
aliased Piksel diberi warna bentuk yang berisi pusat geometris piksel.

Enum, default: fill_shapes

Tentukan bagaimana Anda ingin output digores atau diisi. Ada perbedaan halus antara membelai bentuk dan membelai tepi di antara mereka. Silakan lihat dokumentasi terperinci untuk penjelasan


Enum, default: cutouts

Menentukan apakah bentuk ditempatkan dalam potongan pada bentuk di bawah (cutouts) atau jika ditumpuk di atas satu sama lain (stacked). Perincian


Enum, default: none
Value Shape grouping
none Tidak ada pengelompokan
color Berdasarkan warna, berinteraksi dengan output.shape_stacking
parent Dengan mengandung bentuk
layer Dengan menggambar urutan Lapisan
Perincian

Boolean, default: false

Ratakan lingkaran, elips, persegi panjang, segitiga, dan bintang yang teridentifikasi menjadi kurva biasa. Perincian

Kurva:


Boolean, default: true

Apakah akan mengizinkan Kurva Bézier Kuadrat. Perincian


Boolean, default: true

Apakah akan mengizinkan Kurva Bézier Kubik. Perincian


Boolean, default: true

Apakah akan mengizinkan Busur Lingkaran. Perincian


Boolean, default: true

Apakah akan mengizinkan Busur Elips. Perincian


Float, 0.001 hingga 1.0, default: 0.1

Kami umumnya mencoba mengganti jenis kurva yang tidak diizinkan dengan tipe kurva yang diizinkan. See the details for the precise fallback sequences.

Namun, jika Anda melarang cukup banyak dari mereka, kami perlu memperkirakannya dengan segmen garis. Parameter ini menentukan jarak maksimum dalam piksel antara kurva dan garis yang memperkirakannya. Perincian

Pengisi Celah tau Gap Filler:


Boolean, default: true

Apakah akan bekerja di sekitar bug rendering garis putih yang umum di pemirsa vektor. Perincian


Boolean, default: false

Apakah akan memotong goresan pengisi celah. Saat output.shape_stacking=stacked memotong atau menggunakan goresan non-skala. Perincian


Boolean, default: true

Apakah akan menggunakan goresan pengisi celah non-skala. Saat output.shape_stacking=stacked memotong atau menggunakan goresan non-skala. Perincian


Float, 0.0 hingga 5.0, default: 2.0

Lebar goresan pengisi celah. Perincian

Gaya goresan saat output.draw_style adalah stroke_shapes atau stroke_edges


Boolean, default: true

Apakah akan menggunakan goresan non-skala. Perincian


Boolean, default: false

Apakah akan menggunakan warna pengganti, atau perkiraan warna bentuk. Perincian


Format: '#RRGGBB', misalnya #FF00FF, standar: #000000

Warna pengganti. Perincian


Float, 0.0 hingga 5.0, default: 1.0

Lebar goresan. Perincian

Ukuran keluaran:


Float, 0.0 hingga 1000.0

Faktor skala seragam. Jika ditentukan, ini lebih diutamakan daripada output.size.width dan output.size.height.


Float, 0.0 hingga 1.0E12

Lebar dalam satuan yang ditentukan oleh output.size.unit. Jika hanya satu lebar dan tinggi yang ditentukan, yang lain dihitung secara otomatis untuk mempertahankan rasio aspek.


Float, 0.0 hingga 1.0E12

Tinggi dalam satuan yang ditentukan oleh output.size.unit. Jika hanya satu lebar dan tinggi yang ditentukan, yang lain dihitung secara otomatis untuk mempertahankan rasio aspek.


Enum, default: none

Satuan ukuran lebar dan tinggi. Di antaranya, pt, in, cm, dan mm adalah satuan fisik, dan none dan px adalah satuan non-fisik. Perbedaan ini berinteraksi dengan output.size.input_dpi dan output.size.output_dpi.


Enum, default: preserve_inset

Nilai Aturan Penskalaan
preserve_inset Skalakan secara seragam agar sesuai dengan dimensi yang lebih rapat, sehingga tidak ada limpahan tetapi ruang kosong di dimensi lain
preserve_overflow Skalakan secara seragam agar sesuai dengan dimensi yang kurang rapat, melebihi dimensi yang lebih rapat
stretch Skala tidak seragam agar sesuai dengan lebar dan tinggi yang ditentukan
Untuk opsi preserve, posisi dalam dimensi tidak dibatasi dikontrol oleh output.size.align_x atau output.size.align_y.


Float, 0.0 hingga 1.0, default: 0.5

Perataan horizontal untuk output.size.aspect_ratio = preserve_inset atau preserve_overflow.

Nilai Penjajaran Horisontal
0.0 Rata kiri
0.5 Berpusat secara horizontal
1.0 Rata kanan
Dapat berupa nilai apa pun antara 0.0 dan 1.0.


Float, 0.0 hingga 1.0, default: 0.5

Perataan vertikal untuk output.size.aspect_ratio = preserve_inset atau preserve_overflow.

Nilai Penjajaran Vertikal
0.0 Rata atas
0.5 Rata tengah
1.0 Rata bawah
Dapat berupa nilai apa pun antara 0.0 dan 1.0.


Float, 1.0 hingga 1000000.0

DPI gambar input dibaca dari file bila tersedia. Parameter ini memungkinkan Anda untuk mengganti nilai tersebut. Nilai yang dihasilkan digunakan untuk menghitung ukuran fisik dari gambar masukan, yang digunakan untuk menghitung ukuran keluaran jika unit fisik ditentukan untuk keluaran, tetapi bukan lebar atau tinggi yang eksplisit.


Float, 1.0 hingga 1000000.0

DPI gambar keluaran. Ini digunakan untuk menghitung ukuran piksel dari keluaran bitmap ketika unit fisik ditentukan.

Hapus POST
https://api.vectorizer.ai/api/v1/delete

Gambar yang divektorkan dengan policy.retention_days > 0 disimpan selama jangka waktu yang diminta dan dihapus secara otomatis segera setelahnya.

Biasanya tidak perlu memanggil titik akhir ini. Ini disediakan agar Anda dapat menghapus gambar sebelum periode penyimpanan berakhir. Menghapus gambar lebih awal tidak memberi Anda pengembalian uang untuk sisa hari penyimpanan.

Parameter


Token Gambar, dikembalikan dalam header X-Image-Token dalam panggilan API vektorisasi sebelumnya di mana policy.retention_days > 0.

Atribut Jawaban

success

true Token Gambar telah dihapus secara pasti.

Conotoh Jawaban

{
  "success" : true
}

Status Akun GET
https://api.vectorizer.ai/api/v1/account

Dapatkan informasi dasar tentang akun Anda, seperti status langganan Anda dan jumlah kredit yang tersisa.

Parameter

Tiada

Atribut Jawaban

subscriptionPlan

Paket langganan Anda saat ini berlangganan, atau 'tidak ada'.

subscriptionState

Status langganan Anda saat ini ('aktif' atau 'terlambatBayar') atau 'berakhir' jika tidak berlangganan.

credits

Jumlah kredit API yang tersisa di akun Anda. 0 jika saat ini tidak berlangganan, atau berlangganan paket non-API. Dapat berupa pecahan, jadi pastikan untuk menguraikannya sebagai Ganda.

Nama Pengguna = Id API, Kata Sandi = Rahasia API

cURL

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

Conotoh Jawaban

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

Log Perubahan API

TanggalGanti
4 Nov 2024 Added processing.shapes.min_area_px.
1 Okt 2024 Menambahkan chatbot AI untuk membantu integrasi dengan API.
23 Sep 2024 API diperluas secara signifikan untuk memungkinkan lebih banyak mode operasi. Menambahkan Token Gambar, Tanda Terima, header biaya per panggilan, serta titik akhir Unduh dan Hapus.
11 Jun 2024 Ditambahkan processing.palette
4 Mar 2024 Bagian tambahan tentang batas waktu.
24 Jan 2024 Menambahkan titik akhir Status Akun. Menambahkan kesalahan API terbaru ke halaman Akun. Menambahkan daftar semua respons kesalahan API.
16 Jan 2024 Mendokumentasikan Objek Kesalahan JSON.
3 Okt 2023 Mengklarifikasi bahwa output.gap_filler.enabled=true menghasilkan lebih banyak warna pada hasil daripada yang diminta dalam processing.max_colors.
20 Sep 2023 Ditambahkan mode
1 Agu 2023 Menambahkan grup opsi ukuran keluaran berfitur lengkap dengan opsi berikut: 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, dan output.size.output_dpi. Menambahkan grup opsi keluaran bitmap dengan satu opsi: output.bitmap.anti_aliasing_mode.
7 Jun 2023 Ditambahkan processing.max_colors
31 Mei 2023 Sangat memperluas parameter API. Memperbarui titik akhir API.
10 Mar 2023 Peluncuran pertama.
Dapatkan Kunci API