API de vectorisation d'images

Vectorizer.AI propose une API de conversion bitmap complète. L'API convertit les pixels en vecteurs de manière entièrement automatique et avec une fidélité de pointe.

Obtenir la clé API

Démarrage rapide

POSTEZ une image bitmap et obtenez un résultat vectorisé :

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

Nous avons créé un ChatGPT personnalisé qui peut vous aider à intégrer votre API. Il peut répondre à des questions sur la documentation de l'API et fournir un exemple de code dans le langage de votre choix, adapté à votre cas d'utilisation.

Discutez avec le chatbot API Vectorizer.AI

Le chatbot est en version bêta et fait des erreurs. Vérifiez les réponses et demandez-lui de réviser le code pour corriger les erreurs et les omissions.

Comment utiliser cette API ?

L'API est conçue pour prendre en charge de nombreux cas d'utilisation différents. En voici quelques-unes des plus courantes :

Image unique Soumettez une image bitmap, obtenez un résultat vectoriel, et c'est terminé !

Utilisez le point de terminaison Vectoriser et les exemples de code ci-dessus.

Aperçu d'abord Montrez un aperçu à votre client potentiel avant qu'il n'achète

Si vous devez effectuer de nombreux appels d'API pour réaliser une vente, vous pouvez utiliser les aperçus à moindre coût jusqu'à ce que vous convertissiez réellement un client.

  1. Utilisez le point de terminaison Vectoriser avec mode=preview et policy.retention_days > 0 pour obtenir l'aperçu, en veillant à conserver le jeton d'image renvoyé dans l'en-tête de réponse X-Image-Token.

  2. Après la conversion, utilisez le point de terminaison Télécharger avec le jeton d'image pour télécharger le résultat complet.

  3. Facultatif : Si vous avez besoin de formats de résultats supplémentaires (par exemple, PNG, PDF, etc.), assurez-vous de conserver le reçu renvoyé dans l'en-tête de réponse de téléchargement X-Receipt. Utilisez ensuite le point de terminaison Télécharger avec le jeton d'image et le reçu pour télécharger les formats restants.

Multi-format Vous avez besoin par exemple de résultats PNG et SVG

  1. Utilisez le point de terminaison Vectoriser avec policy.retention_days > 0 pour obtenir le premier résultat, en veillant à conserver le jeton d'image renvoyé dans l'en-tête de réponse X-Image-Token.

  2. Utilisez le point de terminaison Télécharger avec le jeton d'image pour télécharger les autres formats.

Multi-option Vous devez traiter chaque image avec plusieurs options de traitement

  1. Utilisez le point de terminaison Vectoriser avec policy.retention_days > 0 pour obtenir le premier résultat, en veillant à conserver le jeton d'image renvoyé dans l'en-tête de réponse X-Image-Token.

  2. Utilisez le point de terminaison Vectoriser avec le jeton d'image pour parcourir les options de traitement restantes dont vous avez besoin.

  3. Vous pouvez également traiter chaque image individuellement sans vous soucier du jeton d'image. Le jeton d'image vous permet d'économiser un peu de bande passante et de latence.

Tarifs

ActionCréditsDescription
Test0.00

L'intégration et le test de l'API sont gratuits, aucun abonnement n'est requis.

Utilisez mode=test et mode=test_preview pour le développement.

Vous pouvez évaluer la qualité des résultats à l’aide de l’application Web interactive sur la première page.

Aperçu0.20

Nous proposons des résultats en aperçu que vous pouvez montrer à vos utilisateurs finaux avant qu'ils effectuent un achat.

Les aperçus sont des images PNG quatre fois plus grandes que votre entrée et accompagnées d'un filigrane discret.

Utilisez mode=preview pour obtenir un aperçu du résultat.

Vectoriser1.00 Vectorisez une image bitmap en une image vectorielle.
Prévisualisation de la mise à niveau0.90 Téléchargez le résultat de la production après un appel d'API d'aperçu. Réduction par rapport à la vectorisation à partir de zéro.
Format de téléchargement0.10 Téléchargez un autre format du résultat (par ex. SVG, PNG, PDF, etc.). Réduction par rapport à la vectorisation à partir de zéro.
Jour de stockage0.01 Prix ​​par jour pour le stockage d'un résultat après le premier jour, qui est gratuit.

Veuillez consulter la page des prix pour voir les plans d'abonnement.

Authentification et sécurité

L'API utilise une authentification d'accès de base HTTP standard. Toutes les requêtes vers l'API doivent être effectuées via HTTPS et inclure vos identifiants API, l'identifiant API étant l'utilisateur et le secret API étant le mot de passe.

Votre bibliothèque des clients http doit prendre en charge le SNI (Server Name Indication) pour que les requêtes puissent être adressées. Si vous recevez d'étranges erreurs de protocole d'accord (handshake), c'est très probablement le cas.

Taux limité

Le taux d'utilisation de l'API est limité avec des allocations généreuses et aucune limite supérieure stricte.

Au cours d'un fonctionnement normal axé sur l'utilisateur final, il est peu probable que vous rencontriez une limitation de débit, car l'utilisation a alors tendance à refluer et à s'écouler d'une manière que le service gère avec fluidité.

Cependant, pour les travaux par lots, nous vous recommandons de commencer avec au plus 5 fils, en ajoutant 1 nouveau fil toutes les 5 minutes jusqu'à ce que vous ayez atteint le niveau de parallélisme souhaité. Veuillez nous contacter avant de commencer si vous avez besoin de plus de 100 fils simultanés.

Si vous soumettez trop de requêtes, vous commencerez à recevoir des réponses 429 Too Many Requests. Dans ce cas, vous devrez appliquer un retrait linéaire : lorsque vous recevez la première réponse de ce type, attendez 5 secondes avant de soumettre la requête suivante. Lorsque vous recevez la deuxième réponse 429 consécutive, attendez 2*5=10 secondes avant de soumettre la requête suivante. À la troisième réponse, attendez 3*5=15 secondes, et ainsi de suite.

Vous pouvez réinitialiser le compteur de recul après une requête réussie et vous devez appliquer le recul fil par fil (c'est-à-dire que les fils doivent fonctionner indépendamment les uns des autres).

Délais d'attente

Bien que les requêtes API soient normalement exécutées en quelques secondes, des temps de traitement plus longs peuvent survenir lors de pics de charge transitoires.

Pour garantir que votre bibliothèque cliente ne met pas fin prématurément aux requêtes API, elle doit être configurée avec un délai d'inactivité d'au moins 180 secondes.

Erreur JSON

Nous utilisons des statuts HTTP classiques pour indiquer le succès ou l'échec d'une requête API, et incluons d'importantes informations sur l'Objet JSON d'erreur retourné.

Nous nous efforçons de toujours renvoyer un Objet JSON d'erreur en cas de requête problématique. Des erreurs de serveur internes pouvant causer des messages d'erreur non JSON sont toutefois théoriquement possibles.

Attributs

statusLe statut HTTP de la réponse, répété ici pour faciliter l'élimination des erreurs.
codeCode d'erreur interne Vectorizer.AI.
messageMessage d'erreur interprétable par l'utilisateur, destiné à faciliter l'élimination des erreurs.

Si le statut HTTP de votre requête est 200, aucun Objet JSON d'erreur ne sera retourné, et vous pouvez présumer que la requête dans son ensemble a réussi.

Certaines bibliothèques de clients HTTP déclenchent des exceptions pour les états HTTP dans la plage 400599. Vous devez repérer ces exceptions et les traiter adéquatement.

HTTP StatusSignification
200-299

Succès

400-499

Un problème est survenu avec les informations fournies dans la requête (un paramètre peut être manquant, par exemple). Veuillez revoir le message d'erreur pour déterminer la manière de le résoudre.

500-599

Une erreur interne Vectorizer.AI s'est produite. Patientez un instant puis réessayez. Veuillez nous envoyer un e-mail si le problème persiste.

Exemple de message d'erreur

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

Les erreurs API récentes sont répertoriées sur la page de votre compte pour faciliter le débogage.

Il y a également une liste de toutes les réponses d'erreur retournées par l'API.

En-têtes de réponse

Voici les en-têtes de réponse personnalisés que nous utilisons :

En-têteDescription
X-Image-Token

Renvoyé lorsque votre demande de vectorisation a policy.retention_days > 0. Peut être utilisé pour :

  1. Téléchargez le résultat de la production après un appel d'API d'aperçu à un prix réduit par rapport à une vectorisation à partir de zéro.

  2. Téléchargez des formats supplémentaires du résultat (par ex. SVG, PNG, PDF, etc.) à un tarif réduit par rapport à une vectorisation à partir de zéro.

  3. Revectorisez la même image avec différentes options de traitement.

X-Receipt

Renvoyé lorsque vous téléchargez un résultat de production à l'aide d'un jeton d'image d'aperçu. Peut être utilisé pour télécharger des formats supplémentaires du résultat (par ex. SVG, PNG, PDF, etc.) au tarif de format de téléchargement au lieu du tarif d'aperçu de mise à niveau.

X-Credits-Calculated

Renvoyé avec des demandes de test pour montrer le coût qui aurait été engagé si cela avait été une demande standard.

X-Credits-Charged

Renvoyé avec toutes les demandes pour montrer le coût engagé. Toujours 0 pour les demandes de test.

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

Pour vectoriser une image, vous effectuez le téléchargement d'un fichier HTTP POST standard. N'oubliez pas que le type de contenu doit être multipart/form-data pour le téléchargement en amont de fichiers binaires.

Le tableau ci-dessous présente tous les paramètres de l'API sous une forme d'essai fonctionnel. Chaque paramètre a une brève description, mais assurez-vous de consulter la documentation détaillée sur les options de sortie.

Paramètres

L'image source doit être fournie de l'une des manières suivantes :


Binaire

Fichier binaire.


Chaîne

Chaîne encodée base64. La taille de la chaîne doit être de 1mégaoctet maximum.


Chaîne

Une URL pour l'extraction et le traitement.


Un jeton d'image, renvoyé dans l'en-tête X-Image-Token d'un appel d'API de vectorisation antérieur où policy.retention_days > 0.

Doit être un fichier .bmp, .gif, .jpeg, .png ou .tiff.

La taille maximale de téléchargement d'image (= largeur × hauteur) est de 33 554 432 pixels, qui est réduite à input.max_pixels.


Énum, défaut : production
Value Processing Mode Credits
production

Ce mode est destiné à une utilisation en production et tous les paramètres sont pris en charge.

1.00
preview

Ce mode est destiné à être utilisé lorsque vous souhaitez présenter un aperçu du résultat à votre utilisateur final avant qu'il effectue un achat.

Il produit un résultat PNG 4x avec un filigrane discret, ignorant tout paramètre contradictoire.

0.20
test, test_preview

Ces modes sont destinés à l'usage des développeurs lors de l'intégration du service. Tous les paramètres sont pris en charge, mais un filigrane important est présent.

Les résultats des tests sont gratuits et ne nécessitent pas d'abonnement actif ; vous pouvez donc intégrer le service gratuitement.

Nous incluons un en-tête X-Credits-Calculated dans la réponse afin que vous puissiez savoir avec certitude ce qui vous aurait été facturé pour les appels de production correspondants.

Gratuit

Entier, 100 à 3145828, défaut : 2097252

La taille maximale de l'image d'entrée (= largeur × hauteur en pixels). Les images plus grandes seront réduites à cette taille avant le traitement.


Entier, 0 à 30, défaut : 0

Le nombre de jours pendant lesquels l'image d'entrée et son résultat seront conservés. Lorsque vous spécifiez policy.retention_days > 0, nous incluons un en-tête X-Image-Token dans la réponse.

Cela a trois utilisations principales :

  1. Après avoir effectué un appel d'API d'aperçu, vous pouvez ensuite télécharger le résultat de la production rapidement et à prix réduit.

  2. Après avoir vectorisé une image, vous pouvez ensuite télécharger plusieurs formats de sortie pour la même image et les mêmes options de traitement sans avoir à tous les vectoriser à partir de zéro. Cela permet d'économiser considérablement à la fois sur les crédits et sur la latence.

  3. Lorsque vous souhaitez revectoriser la même image avec différentes options de traitement. Cela vous permet de réduire la latence des appels et d’économiser de la bande passante.

Le premier jour de stockage est gratuit, puis des frais de 0,01 crédit par jour s'appliquent.

Voyez également le point de terminaison Télécharger.


Entier, 0 à 256, défaut : 0

Le nombre maximum de couleurs à utiliser pour le résultat.

0 signifie illimité. 1 et 2 signifient tous deux 2 couleurs, par exemple. noir et blanc. N>=2 signifie ce nombre de couleurs.

Notez que si output.gap_filler.enabled=true (défaut), le résultat contiendra également des mélanges des couleurs sélectionnées. Désactivez le remplissage d'espace pour obtenir un résultat avec uniquement les couleurs sélectionnées.


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

Défaut :   (vide)

Il s'agit d'un mécanisme très puissant et flexible qui permet de contrôler les couleurs dans le résultat.

Les couleurs détectées dans l'image qui se trouvent dans la tolérance d'une couleur de la palette seront alignées sur la couleur de la palette la plus proche, et remappées si cette couleur de palette a un remappage spécifié. Les couleurs sans correspondance restent inchangées.

Exemples

Pour ajuster les couleurs détectées aux valeurs les plus proches du rouge, du vert et du bleu, utilisez :

#FF0000; 
#00FF00; 
#0000FF;

Pour nettoyer les couleurs détectées proches du rouge, du vert et du bleu, mais laisser les autres inchangées, utilisez :

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

Pour transformer les couleurs détectées proches du rouge en vert, en laissant toutes les autres inchangées, utilisez :

#FF0000 -> #00FF00 ~ 0.02;

Pour aligner tout ce qui est proche du rouge, du vert et du bleu sur ces couleurs, mais aligner toutes les autres couleurs sur noir transparent (ce qui les supprime du résultat), utilisez :

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

Couleurs

Les couleurs sont spécifiées à l'aide de la syntaxe de base des couleurs CSS. Pour les couleurs (partiellement) transparentes, nous recommandons d'utiliser #RRGGBBAA. Pour les couleurs opaques, nous recommandons d'utiliser #RRGGBB.

Les couleurs entièrement transparentes sont omises dans le résultat. Avec la capacité de remappage des couleurs, vous pouvez l'utiliser pour supprimer certaines couleurs du résultat.

Vous pouvez utiliser un maximum de 1 024 couleurs.

Tolérance

L'unité est la distance fractionnelle des couleurs ARGB, où 1,0 est la distance entre le rouge opaque (#FFFF0000) et le noir opaque (#FF000000).

La tolérance maximale est de 2,0, ce qui correspond à la distance entre le noir transparent (#00000000) et le blanc opaque (#FFFFFFFF).

La tolérance par défaut est 2,0, donc par défaut les couleurs détectées s'alignent sur la couleur de la palette la plus proche, même si elle est éloignée. Vous pouvez limiter l'alignement sur les couleurs individuelles de la palette en spécifiant des tolérances personnalisées.

Si vous travaillez habituellement avec des couleurs comprises entre 0 et 255, il vous suffit de diviser par 255 pour obtenir la valeur fractionnaire.


Flotteur, 0.0 à 100.0, défaut : 0.125

La surface minimale d'une forme en pixels. Les formes dont la taille est inférieure à cette valeur sont rejetées.


Énum, défaut : svg

Format de fichier de sortie.

Options SVG :


Énum, défaut : svg_1_1

Spécifiez l'attribut de version SVG dans la balise SVG. Détails


Booléen, défaut : false

Inclusion ou non des attributs de taille de l'image dans la balise SVG. Lorsque true, les spectateurs restituent généralement le SVG à une taille fixe. Lorsque false, les spectateurs laissent généralement l'échelle SVG s'adapter à l'espace disponible. Détails


Booléen, défaut : false

Lorsque true, nous désactivons les options qu'Adobe Illustrator ne peut pas importer. Détails

Options DFX :


Énum, défaut : lines_and_arcs

Les capacités des lecteurs DXF varient énormément. Cette option vous permet de limiter la sortie aux primitives de dessin réellement prises en charge par votre lecteur DXF. Détails

Options bitmap :

S'applique uniquement lorsque output.file_format=png


Énum, défaut : anti_aliased
Value Anti-Aliasing Mode
anti_aliased Les couleurs des pixels situés le long de la limite entre les formes sont mélangées en fonction de la fraction de la zone de pixel couverte par chaque forme.
aliased Les pixels se voient attribuer la couleur de la forme qui contient le centre géométrique du pixel.

Énum, défaut : fill_shapes

Indiquez la manière dont vous souhaitez que la sortie soit tracée ou remplie. Il existe une différence subtile entre tracer les formes et tracer les bords entre elles. Veuillez consulter la documentation détaillée pour obtenir une explication.


Énum, défaut : cutouts

Détermine si les formes sont placées dans des découpes dans les formes ci-dessous (cutouts) ou si elles sont empilées les unes sur les autres (stacked). Détails


Énum, défaut : none
Value Shape grouping
none Pas de regroupement
color Par couleur, interagit avec output.shape_stacking
parent Par forme contenante
layer Par couche d'ordre de dessin
Détails

Booléen, défaut : false

Aplatit les cercles, ellipses, rectangles, triangles et étoiles en courbes ordinaires. Détails

Courbes :


Booléen, défaut : true

Pour permettre ou non les courbes de Bézier quadratiques. Détails


Booléen, défaut : true

Pour permettre ou non les courbes de Bézier cubiques. Détails


Booléen, défaut : true

Pour permettre ou non les arcs circulaires. Détails


Booléen, défaut : true

Pour permettre ou non les arcs elliptiques. Détails


Flotteur, 0.001 à 1.0, défaut : 0.1

Nous essayons généralement de remplacer les types de courbes non autorisés par des types de courbes autorisés. See the details for the precise fallback sequences.

Cependant, si vous en interdisez un grand nombre, nous devrons les remplacer par des segments de ligne qui s'en rapprochent. Ce paramètre spécifie la distance maximale en pixels entre une courbe et les lignes qui s'en rapprochent. Détails

Remplisseur d'espace :


Booléen, défaut : true

Pour contourner ou non les bogues qui produisent des lignes blanches courants dans les visionneuses vectorielles. Détails


Booléen, défaut : false

Pour supprimer ou non les traits de remplissage d'espace. Lorsque output.shape_stacking=stacked, supprimez ou utilisez des traits sans mise à l'échelle. Détails


Booléen, défaut : true

Pour utiliser ou non des traits de remplissage d'espace sans mise à l'échelle. Lorsque output.shape_stacking=stacked, supprimez ou utilisez des traits sans mise à l'échelle. Détails


Flotteur, 0.0 à 5.0, défaut : 2.0

Largeur des traits de remplissage d'espace. Détails

Style de trait lorsque output.draw_style est stroke_shapes ou stroke_edges :


Booléen, défaut : true

Pour utiliser ou non un trait sans mise à l'échelle. Détails


Booléen, défaut : false

Pour utiliser ou non une couleur de remplacement ou la couleur estimée de la forme. Détails


Format : '#RRGGBB', par ex. #FF00FF, défaut : #000000

La couleur de remplacement. Détails


Flotteur, 0.0 à 5.0, défaut : 1.0

Largeur du trait. Détails

Taille du résultat :


Flotteur, 0.0 à 1000.0

Facteur d'échelle uniforme. Si indiqué, est prioritaire sur output.size.width et output.size.height.


Flotteur, 0.0 à 1.0E12

Largeur en unités spécifiées par output.size.unit. Si seule la largeur ou la hauteur est spécifiée, l'autre valeur est calculée automatiquement pour préserver le rapport hauteur/largeur.


Flotteur, 0.0 à 1.0E12

Hauteur en unités spécifiées par output.size.unit. Si seule la largeur ou la hauteur est spécifiée, l'autre valeur est calculée automatiquement pour préserver le rapport hauteur/largeur.


Énum, défaut : none

L'unité de mesure de la largeur et de la hauteur. Parmi celles-ci, pt, in, cm et mm sont des unités physiques, et none et px sont des unités non physiques. Ces distinctions interagissent avec output.size.input_dpi et output.size.output_dpi.


Énum, défaut : preserve_inset

Valeur Règle de mise à l'échelle
preserve_inset Échelle uniforme pour s'adapter à la dimension la plus étroite, afin qu'il n'y ait pas de débordement mais un espace vide dans l'autre dimension
preserve_overflow Échelle uniforme pour s'adapter à la dimension la moins étroite, débordant de la dimension la plus étroite
stretch Échelle non uniforme pour s'adapter à la largeur et à la hauteur spécifiées
Quelle que soit l'option preserve, la position dans la dimension sans contrainte est contrôlée par output.size.align_x ou output.size.align_y.


Flotteur, 0.0 à 1.0, défaut : 0.5

Alignement horizontal pour output.size.aspect_ratio = preserve_inset ou preserve_overflow.

Valeur Alignement horizontal
0.0 Alignement à gauche
0.5 Centrage horizontal
1.0 Alignement à droite
Peut être toute valeur entre 0.0 et 1.0.


Flotteur, 0.0 à 1.0, défaut : 0.5

Alignement vertical pour output.size.aspect_ratio = preserve_inset ou preserve_overflow.

Valeur Alignement vertical
0.0 Alignement en haut
0.5 Centrage vertical
1.0 Alignement en bas
Peut être toute valeur entre 0.0 et 1.0.


Flotteur, 1.0 à 1000000.0

Le DPI de l’image d’entrée est lu à partir du fichier lorsqu’il est disponible. Ce paramètre vous permet de remplacer cette valeur. La valeur résultante est utilisée pour calculer la taille physique de l'image d'entrée, qui est utilisée pour calculer la taille de sortie si des unités physiques sont spécifiées pour la sortie, mais pas une largeur ou une hauteur explicite.


Flotteur, 1.0 à 1000000.0

Le DPI de l’image de sortie. Ceci est utilisé pour calculer la taille des pixels de la sortie bitmap lorsque des unités physiques sont spécifiées.

Télécharger POST
https://api.vectorizer.ai/api/v1/download

Ce point de terminaison vous permet de :

  1. Télécharger le résultat complet de la production après un appel d'API d'aperçu.

    Nous incluons un en-tête X-Receipt dans la réponse afin que vous puissiez télécharger par la suite des formats de sortie supplémentaires au tarif de téléchargement réduit.

  2. Téléchargez plusieurs formats de sortie pour la même image et et les mêmes options de traitement au tarif de téléchargement réduit et sans avoir à les vectoriser tous à partir de zéro.

Paramètres


Un jeton d'image, renvoyé dans l'en-tête X-Image-Token d'un appel d'API de vectorisation antérieur où policy.retention_days > 0.


Chaîne
Facultatif

Un reçu, renvoyé dans l'en-tête X-Receipt d'un appel d'API de téléchargement antérieur où vous avez mis à niveau un aperçu vers un résultat de production.

Lorsque vous soumettez un jeton d'image d'aperçu, vous devez inclure le reçu pour obtenir le tarif de format de téléchargement réduit.


Énum, défaut : svg

Format de fichier de sortie.

Options SVG :


Énum, défaut : svg_1_1

Spécifiez l'attribut de version SVG dans la balise SVG. Détails


Booléen, défaut : false

Inclusion ou non des attributs de taille de l'image dans la balise SVG. Lorsque true, les spectateurs restituent généralement le SVG à une taille fixe. Lorsque false, les spectateurs laissent généralement l'échelle SVG s'adapter à l'espace disponible. Détails


Booléen, défaut : false

Lorsque true, nous désactivons les options qu'Adobe Illustrator ne peut pas importer. Détails

Options DFX :


Énum, défaut : lines_and_arcs

Les capacités des lecteurs DXF varient énormément. Cette option vous permet de limiter la sortie aux primitives de dessin réellement prises en charge par votre lecteur DXF. Détails

Options bitmap :

S'applique uniquement lorsque output.file_format=png


Énum, défaut : anti_aliased
Value Anti-Aliasing Mode
anti_aliased Les couleurs des pixels situés le long de la limite entre les formes sont mélangées en fonction de la fraction de la zone de pixel couverte par chaque forme.
aliased Les pixels se voient attribuer la couleur de la forme qui contient le centre géométrique du pixel.

Énum, défaut : fill_shapes

Indiquez la manière dont vous souhaitez que la sortie soit tracée ou remplie. Il existe une différence subtile entre tracer les formes et tracer les bords entre elles. Veuillez consulter la documentation détaillée pour obtenir une explication.


Énum, défaut : cutouts

Détermine si les formes sont placées dans des découpes dans les formes ci-dessous (cutouts) ou si elles sont empilées les unes sur les autres (stacked). Détails


Énum, défaut : none
Value Shape grouping
none Pas de regroupement
color Par couleur, interagit avec output.shape_stacking
parent Par forme contenante
layer Par couche d'ordre de dessin
Détails

Booléen, défaut : false

Aplatit les cercles, ellipses, rectangles, triangles et étoiles en courbes ordinaires. Détails

Courbes :


Booléen, défaut : true

Pour permettre ou non les courbes de Bézier quadratiques. Détails


Booléen, défaut : true

Pour permettre ou non les courbes de Bézier cubiques. Détails


Booléen, défaut : true

Pour permettre ou non les arcs circulaires. Détails


Booléen, défaut : true

Pour permettre ou non les arcs elliptiques. Détails


Flotteur, 0.001 à 1.0, défaut : 0.1

Nous essayons généralement de remplacer les types de courbes non autorisés par des types de courbes autorisés. See the details for the precise fallback sequences.

Cependant, si vous en interdisez un grand nombre, nous devrons les remplacer par des segments de ligne qui s'en rapprochent. Ce paramètre spécifie la distance maximale en pixels entre une courbe et les lignes qui s'en rapprochent. Détails

Remplisseur d'espace :


Booléen, défaut : true

Pour contourner ou non les bogues qui produisent des lignes blanches courants dans les visionneuses vectorielles. Détails


Booléen, défaut : false

Pour supprimer ou non les traits de remplissage d'espace. Lorsque output.shape_stacking=stacked, supprimez ou utilisez des traits sans mise à l'échelle. Détails


Booléen, défaut : true

Pour utiliser ou non des traits de remplissage d'espace sans mise à l'échelle. Lorsque output.shape_stacking=stacked, supprimez ou utilisez des traits sans mise à l'échelle. Détails


Flotteur, 0.0 à 5.0, défaut : 2.0

Largeur des traits de remplissage d'espace. Détails

Style de trait lorsque output.draw_style est stroke_shapes ou stroke_edges :


Booléen, défaut : true

Pour utiliser ou non un trait sans mise à l'échelle. Détails


Booléen, défaut : false

Pour utiliser ou non une couleur de remplacement ou la couleur estimée de la forme. Détails


Format : '#RRGGBB', par ex. #FF00FF, défaut : #000000

La couleur de remplacement. Détails


Flotteur, 0.0 à 5.0, défaut : 1.0

Largeur du trait. Détails

Taille du résultat :


Flotteur, 0.0 à 1000.0

Facteur d'échelle uniforme. Si indiqué, est prioritaire sur output.size.width et output.size.height.


Flotteur, 0.0 à 1.0E12

Largeur en unités spécifiées par output.size.unit. Si seule la largeur ou la hauteur est spécifiée, l'autre valeur est calculée automatiquement pour préserver le rapport hauteur/largeur.


Flotteur, 0.0 à 1.0E12

Hauteur en unités spécifiées par output.size.unit. Si seule la largeur ou la hauteur est spécifiée, l'autre valeur est calculée automatiquement pour préserver le rapport hauteur/largeur.


Énum, défaut : none

L'unité de mesure de la largeur et de la hauteur. Parmi celles-ci, pt, in, cm et mm sont des unités physiques, et none et px sont des unités non physiques. Ces distinctions interagissent avec output.size.input_dpi et output.size.output_dpi.


Énum, défaut : preserve_inset

Valeur Règle de mise à l'échelle
preserve_inset Échelle uniforme pour s'adapter à la dimension la plus étroite, afin qu'il n'y ait pas de débordement mais un espace vide dans l'autre dimension
preserve_overflow Échelle uniforme pour s'adapter à la dimension la moins étroite, débordant de la dimension la plus étroite
stretch Échelle non uniforme pour s'adapter à la largeur et à la hauteur spécifiées
Quelle que soit l'option preserve, la position dans la dimension sans contrainte est contrôlée par output.size.align_x ou output.size.align_y.


Flotteur, 0.0 à 1.0, défaut : 0.5

Alignement horizontal pour output.size.aspect_ratio = preserve_inset ou preserve_overflow.

Valeur Alignement horizontal
0.0 Alignement à gauche
0.5 Centrage horizontal
1.0 Alignement à droite
Peut être toute valeur entre 0.0 et 1.0.


Flotteur, 0.0 à 1.0, défaut : 0.5

Alignement vertical pour output.size.aspect_ratio = preserve_inset ou preserve_overflow.

Valeur Alignement vertical
0.0 Alignement en haut
0.5 Centrage vertical
1.0 Alignement en bas
Peut être toute valeur entre 0.0 et 1.0.


Flotteur, 1.0 à 1000000.0

Le DPI de l’image d’entrée est lu à partir du fichier lorsqu’il est disponible. Ce paramètre vous permet de remplacer cette valeur. La valeur résultante est utilisée pour calculer la taille physique de l'image d'entrée, qui est utilisée pour calculer la taille de sortie si des unités physiques sont spécifiées pour la sortie, mais pas une largeur ou une hauteur explicite.


Flotteur, 1.0 à 1000000.0

Le DPI de l’image de sortie. Ceci est utilisé pour calculer la taille des pixels de la sortie bitmap lorsque des unités physiques sont spécifiées.

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

Les images vectorisées avec policy.retention_days > 0 sont stockées pendant la période demandée et supprimées automatiquement peu de temps après.

Normalement, il n'est pas nécessaire d’appeler ce point de terminaison. Il est fourni pour vous permettre de supprimer des images avant l'expiration de la période de conservation. La suppression anticipée d'une image ne vous donne pas droit à un remboursement pour les jours de stockage restants.

Paramètres


Un jeton d'image, renvoyé dans l'en-tête X-Image-Token d'un appel d'API de vectorisation antérieur où policy.retention_days > 0.

Attributs de réponse

success

true Le jeton d'image a été définitivement supprimé.

Exemple de réponse

{
  "success" : true
}

État du compte GET
https://api.vectorizer.ai/api/v1/account

Récupérez des informations de base sur votre compte, telles que le statut de votre abonnement et le nombre de crédits restants.

Paramètres

Aucune

Attributs de réponse

subscriptionPlan

Le plan d'abonnement auquel vous êtes actuellement abonné(e) ou « aucun ».

subscriptionState

Le statut de votre abonnement actuel (« actif » ou « échu ») ou « terminé » si vous n'êtes pas abonné(e).

credits

Le nombre de crédits API restants sur votre compte. 0 si vous n'êtes pas actuellement abonné(e), ou si vous êtes abonné(e) à un plan non API. Peut être fractionnaire ; veillez donc l'analyser comme un Double.

Nom d'utilisateur = Id API, Mot de passe = Secret API

cURL

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

Exemple de réponse

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

Journal des modifications de l'API

DateModifier
4 nov. 2024 processing.shapes.min_area_px ajouté.
1 oct. 2024 Ajout d'un chatbot IA pour aider à l'intégration avec l'API.
23 sept. 2024 L'API a été considérablement étendue pour permettre davantage de modes de fonctionnement. Ajout de jetons d'image, de reçus, d'en-têtes de frais par appel et de points de terminaison de téléchargement et de suppression.
11 juin 2024 processing.palette ajouté.
4 mars 2024 Ajout d'une section sur les délais d'attente.
24 janv. 2024 Ajout du point de terminaison État du compte. Ajout des erreurs API récentes à la page du Compte. Ajout d'une liste de toutes les réponses d'erreur API.
16 janv. 2024 Objet JSON d'erreur documenté.
3 oct. 2023 Clarification que output.gap_filler.enabled=true génère davantage de couleurs dans le résultat que ce qui est demandé dans processing.max_colors.
20 sept. 2023 mode ajouté.
1 août 2023 Ajout d'un groupe d'options de taille de sortie avec les options suivantes : 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 et output.size.output_dpi. Ajout d'un groupe d'options de sortie bitmap avec une option : output.bitmap.anti_aliasing_mode.
7 juin 2023 processing.max_colors ajouté.
31 mai 2023 Élargissement considérable des paramètres de l'API. Point de terminaison d'API mis à jour.
10 mars 2023 Première version.
Obtenir la clé API