Bildvektorisierungs-API

Vectorizer.AI bietet eine hochentwickelte Bitmap-Nachzeichnungs-API. Die API zeichnet Pixel vollautomatisch und mit branchenführender Originaltreue in Vektoren nach.

API-Schlüssel abrufen

Schnellstart

Sie LADEN ein Bitmap-Bild HOCH und erhalten als Ergebnis eine Vektorgrafik:

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

Wir haben ein benutzerdefiniertes ChatGPT erstellt, das Ihnen bei Ihrer API-Integration helfen kann. Es kann Fragen zur API-Dokumentation beantworten und Beispielcode in Ihrer bevorzugten Sprache bereitstellen, der auf Ihren Anwendungsfall zugeschnitten ist.

Chat with the Vectorizer.AI API Chatbot

Der Chatbot befindet sich in der Beta-Phase und macht Fehler. Überprüfe die Antworten noch einmal und bitte das System, den Code zu überarbeiten, um Fehler und Auslassungen zu korrigieren.

Verwendung dieser API

Die API wurde so konzipiert, dass sie viele verschiedene Anwendungsfälle unterstützt. Hier sind einige häufig verwendete:

Einzelbild Sie senden eine Bitmap, erhalten ein Vektorergebnis und fertig

Verwenden Sie den Endpunkt Vektorisieren und die obigen Code-Beispiele.

Zuerst eine Vorschau Zeigen Sie Ihrem potenziellen Kunden eine Vorschau, bevor er sich zum Kauf verpflichtet

Wenn Sie sehr viele API-Aufrufe benötigen, um einen Verkauf zu tätigen, können Sie die kostengünstigeren Vorschauen nutzen, bevor Sie tatsächlich einen Auftrag erhalten.

  1. Verwenden Sie den Endpunkt Vektorisieren mit mode=preview und policy.retention_days > 0, um die Vorschau zu erhalten. Achten Sie darauf, das in der Antwortkopfzeile X-Image-Token zurückgegebene Bild-Token zu behalten.

  2. Verwenden Sie nach der Konvertierung den Endpunkt Download mit dem Bild-Token, um das vollständige Ergebnis herunterzuladen.

  3. Optional: Wenn Sie zusätzliche Ergebnisformate benötigen (z. B. PNG, PDF usw.), achten Sie darauf, den in der Download-Antwortkopfzeile X-Receipt zurückgegebenen Beleg zu behalten. Verwenden Sie dann den Endpunkt Download mit dem Bild-Token und dem Beleg zum Herunterladen der restlichen Formate.

Multi-Format Sie benötigen z. B. sowohl PNG- als auch SVG-Ergebnisse

  1. Verwenden Sie den Endpunkt Vektorisieren mit policy.retention_days > 0, um das erste Ergebnis zu erhalten. Achten Sie darauf, das in der Antwortkopfzeile X-Image-Token zurückgegebene Bild-Token zu behalten.

  2. Verwenden Sie den Endpunkt Download mit dem Bild-Token zum Herunterladen der anderen Formate.

Multi-Option Sie müssen jedes Bild mit mehreren Verarbeitungsoptionen verarbeiten

  1. Verwenden Sie den Endpunkt Vektorisieren mit policy.retention_days > 0, um das erste Ergebnis zu erhalten. Achten Sie darauf, das in der Antwortkopfzeile X-Image-Token zurückgegebene Bild-Token zu behalten.

  2. Verwenden Sie den Endpunkt Vektorisieren mit dem Bild-Token, um die von Ihnen benötigten restlichen Verarbeitungsoptionen zu durchlaufen.

  3. Sie können aber auch jedes Bild einzeln verarbeiten und brauchen dabei nicht auf das Bild-Token zu achten. Das Bild-Token spart ein wenig Bandbreite und Latenz ein.

Preise

AktionPunkteBeschreibung
Tests0.00

Seine Integration in die API und Tests der API sind kostenlos.

Verwenden Sie mode=test und mode=test_preview für die Entwicklung.

Die Qualität des Ergebnisses können Sie mithilfe der interaktiven Web-App auf der Homepage der Website beurteilen.

Vorschau0.20

Wir bieten Vorschauergebnisse, die Sie Ihren Endbenutzern zeigen können, bevor diese einen Kauf tätigen.

Vorschauen sind PNG-Bilder, die viermal größer als Ihre Eingabe sind. Sie sind mit einem dezenten Wasserzeichen versehen.

Verwenden Sie mode=preview, um ein Vorschauergebnis zu erhalten.

Vektorisieren1.00 Vektorisieren Sie ein Bitmap-Bild in ein Vektorbild.
Upgrade-Vorschau0.90 Laden Sie das Produktionsergebnis nach einer Vorschau des API-Aufrufs herunter. Preisermäßigung im Vergleich zur Vektorisierung ganz von Anfang an.
Download-Format0.10 Laden Sie ein anderes Format des Ergebnisses herunter (z. B. SVG, PNG, PDF usw.). Preisermäßigung im Vergleich zur Vektorisierung ganz von Anfang an.
Speichertag0.01 Preis pro Tag für das Speichern des Ergebnisses über den ersten Tag hinaus (der erste Tag ist kostenlos).

Beziehen Sie sich bitte auf die Preisgebungsseite, auf der Sie die Abonnementpläne einsehen können.

Authentifizierung und Sicherheit

Die API verwendet eine standardmäßige HTTP Basic Access Authentication. Alle Anfragen an die API müssen über HTTPS erfolgen und Ihre API-Zugangsdaten enthalten, wobei die API-ID als Benutzername und der geheime API-Schlüssel als Kennwort fungieren.

Ihre HTTP-Client-Bibliothek muss die Servernamensanzeige (Server Name Indication (SNI)) unterstützen, damit Anfragen erfolgreich gestellt werden können. Wenn seltsame Handshake-Fehler auftreten, ist dies wahrscheinlich die Ursache.

Geschwindigkeitsbegrenzung

Die Verwendung der API unterliegt einer Geschwindigkeitsbegrenzung mit großzügigen Limits und keiner festen Obergrenze.

Während des normalen vom Endbenutzer gesteuerten Betriebs sind Geschwindigkeitsbegrenzungen sehr unwahrscheinlich, da die Nutzung graduell ab- und zunimmt, sodass der Dienst reibungslos ausgeführt werden kann.

Bei Stapelaufträgen empfehlen wir jedoch, mit höchstens 5 Threads zu beginnen und dann alle 5 Minuten 1 neuen Thread hinzuzufügen, bis der gewünschte Parallelitätsgrad erreicht ist. Lassen Sie uns bitte vor Beginn wissen, wenn Sie mehr als 100 gleichzeitige Threads benötigen.

Wenn zu viele Anfragen eingereicht werden, erhalten Sie in zunehmendem Maße die Antwort 429 Too Many Requests. In diesem Fall sollten Sie den Vorgang linear zurückfahren: nach der ersten dieser Antworten warten Sie 5 Sekunden, bis Sie die nächste Anfrage einreichen. Bei der zweiten aufeinanderfolgenden 429-Antwort warten Sie 2*5=10 Sekunden, bis Sie die nächste Anfrage einreichen. Bei der dritten Antwort warten Sie 3*5=15 Sekunden usw.

Sie können den Rückfahrzähler nach einer erfolgreichen Anfrage zurücksetzen und sollten das Rückfahren pro Thread vornehmen (d. h. die Threads sollten unabhängig voneinander ausgeführt werden).

Timeouts

Die API-Anfragen werden normalerweise innerhalb von Sekunden abgeschlossen, aber wenn transiente Belastungsspitzen auftreten, kann es zu längeren Verarbeitungszeiten kommen.

Um sicherzustellen, dass Ihre Client-Bibliothek API-Anfragen nicht vorzeitig beendet, sollte sie mit einem Leerlauftimeout von mindestens 180 Sekunden konfiguriert werden.

Fehler-JSON

Wir verwenden herkömmliche HTTP-Status, um den Erfolg oder Fehlschlag einer API-Anfrage anzuzeigen, und stellen wichtige Fehlerinformationen im zurückgegebenen Fehler-JSON-Objekt bereit.

Wir versuchen, bei einer problematischen Anfrage immer ein Fehler-JSON-Objekt zurückzugeben. Es ist jedoch theoretisch möglich, dass interne Serverfehler auftreten, die zu Nicht-JSON-Fehlerantworten führen.

Attribute

statusDer HTTP-Status der Antwort, der hier zur Unterstützung des Debugging wiederholt wird.
codeVectorizer.AI – interner Fehlercode.
messageVisuell lesbare Fehlermeldung, die für das Debugging hilfreich sein soll.

Wenn der HTTP-Status für Ihre Anfrage 200 ist, wird kein Fehler-JSON-Objekt zurückgegeben, und Sie können mit großer Sicherheit davon ausgehen, dass die Anfrage generell erfolgreich war.

Manche HTTP-Client-Bibliotheken führen für HTTP-Status im Bereich 400-599 zu Ausnahmen. Diese Ausnahmen müssen erfasst und entsprechend behandelt werden.

HTTP StatusBedeutung
200-299

Erfolg

400-499

Es gibt ein Problem bei den in der Anfrage angegebenen Informationen (es fehlt z. B. ein Parameter). Prüfen Sie bitte die Fehlermeldung, um eine Methode zu finden, den Fehler zu beheben.

500-599

Bei Vectorizer.AI ist ein interner Fehler aufgetreten. Warten Sie einen Moment und versuchen Sie es erneut. Wenn das Problem immer noch auftritt, schicken Sie uns eine E-Mail.

Beispiel für eine Fehlerantwort

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

Kürzlich aufgetretene API-Fehler sind auf Ihrer Kontoseite aufgeführt, sodass Sie sie leichter beheben können.

Außerdem gibt es eine Liste aller von der API zurückgegebenen Fehlerantworten.

Antwort-Kopfzeilen

Hier sind die von uns verwendeten vordefinierten Antwortkopfzeilen:

KopfzeileBeschreibung
X-Image-Token

Wird zurückgegeben, wenn Ihre Vektorisierungsanfrage policy.retention_days > 0 hat. Kann für Folgendes verwendet werden:

  1. Herunterladen des Produktionsergebnisses nach einer Vorschau eines API-Aufrufs mit Preisermäßigung im Vergleich zur Vektorisierung ganz von Anfang an.

  2. Herunterladen zusätzlicher Formate (z. B. SVG, PNG, PDF usw.) des Ergebnisses zu einem ermäßigten Preis im Vergleich zur Vektorisierung ganz von Anfang an.

  3. Erneute Vektorisierung desselben Bildes mit verschiedenen Verarbeitungsoptionen.

X-Receipt

Wird zurückgegeben, wenn Sie ein Produktionsergebnis mithilfe eines Vorschau-Bild-Tokens herunterladen. Kann zum Herunterladen zusätzlicher Formate (z. B. SVG, PNG, PDF usw.) des Ergebnisses zum Download-Formatpreis anstelle des Upgrade-Vorschaupreises verwendet werden.

X-Credits-Calculated

Wird mit Testanfragen zurückgegeben, um die Kosten zu zeigen, die angefallen wären, wenn es sich um eine normale Anfrage gehandelt hätte.

X-Credits-Charged

Wird mit allen Anfragen zurückgegeben, um die angefallenen Kosten zu zeigen. Immer 0 für Testanfragen.

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

Zum Vektorisieren eines Bildes führen Sie einen standardmäßigen HTTP POST-Dateiupload durch. Denken Sie daran, dass der Inhaltstyp als multipart/form-data vorliegen muss, wenn binäre Dateien hochgeladen werden.

Die nachstehende Tabelle enthält alle API-Parameter, die Sie auch gleich ausprobieren können. Jeder Parameter wird kurz beschrieben, aber sehen Sie sich auf jeden Fall die ausführliche Dokumentation zu den Ausgabeoptionen an.

Parameter

Das Eingabebild muss in einem der folgenden Formate bereitgestellt werden:


Binär

Eine binäre Datei.


Zeichenfolge

als base64-codierte Zeichenfolge. Die Zeichenfolge kann höchstens 1 Megabyte umfassen.


Zeichenfolge

Eine URL zum Abrufen und Verarbeiten.


Ein Bild-Token, das in der Kopfzeile X-Image-Token in einem früheren Vektorisierungs-API-Aufruf zurückgegeben wird, wenn policy.retention_days > 0.

Muss eine .bmp-, .gif-, .jpeg-, .png-, oder .tiff-Datei sein.

Die maximale Upload-Größe für Bilder (= Breite × Höhe) ist 33.554.432 Pixel. Diese Größe wird auf input.max_pixels reduziert.


Enum, Standardeinstellung: production
Value Processing Mode Credits
production

Dieser Modus ist für die Nutzung in der Produktion vorgesehen, und alle Parameter werden unterstützt.

1.00
preview

Dieser Modus ist für eine Vorschau vorgesehen, die Sie Ihrem Endbenutzer zeigen können, bevor dieser einen Kauf tätigt.

Er produziert ein PNG-Ergebnis in 4-facher Größe mit einem dezenten Wasserzeichen, und alle widersprüchlichen Parameter werden ignoriert.

0.20
test, test_preview

Diese Modi sind für die Benutzung durch Entwickler vorgesehen, wenn sie den Service integrieren. Alle Parameter werden unterstützt, aber die Ergebnisse sind umfassend mit Wasserzeichen versehen.

Die Testergebnisse sind kostenlos und erfordern kein aktives Abonnement. Sie können den Service also kostenlos integrieren.

Wir nehmen die Kopfzeile X-Credits-Calculated in die Antwort auf, damit Sie mit Bestimmtheit wissen, was Ihnen für die entsprechenden Produktionsaufrufe berechnet worden wäre.

Kostenlos

Ganzzahl, 100 zu 3145828, Standardeinstellung: 2097252

Maximale Eingabebildgröße (= Breite × Höhe in Pixeln). Wenn das Bild größer ist, wird es vor der Verarbeitung auf diese Größe verkleinert.


Ganzzahl, 0 zu 30, Standardeinstellung: 0

Die Anzahl der Tage, die das Eingabebild und sein Ergebnis gespeichert werden. Wenn Sie policy.retention_days > 0 angeben, nehmen wir die Kopfzeile X-Image-Token in die Antwort auf.

Dadurch haben Sie drei Hauptverwendungsmöglichkeiten:

  1. Nach einem Vorschau-API-Aufruf können Sie das Produktionsergebnis später zu einem ermäßigten Preis herunterladen.

  2. Nach der Vektorisierung eines Bildes können Sie mehrere Ausgabeformate für dasselbe Bild und mehrere Verarbeitungsoptionen herunterladen, ohne sie alle ganz von Anfang an vektorisieren zu müssen. Dadurch können erhebliche Einsparungen sowohl an Punkten als auch an Latenzzeit erzielt werden.

  3. Wenn Sie dasselbe Bild mit verschiedenen Verarbeitungsoptionen erneut vektorisieren möchten. Dadurch können sowohl die Aufruflatenzzeit verringert als auch Bandbreite eingespart werden.

Der erste Speichertag ist kostenlos. Dann wird eine Gebühr von 0,01 credits pro Tag berechnet.

Siehe auch den Endpunkt Download.


Ganzzahl, 0 zu 256, Standardeinstellung: 0

Maximale Anzahl von Farben, die für das Ergebnis verwendet werden können.

0 bedeutet unbegrenzt. Sowohl 1 als auch 2 bedeutet zwei Farben, z. B. schwarz und weiß. N>=2 bedeutet diese Anzahl von Farben.

Es ist zu beachten, dass falls output.gap_filler.enabled=true lautet (die Standardeinstellung), das Ergebnis auch Kombinationen der ausgewählten Farben enthalten wird. Deaktivieren Sie die Lückenfüllfunktion, um ein Ergebnis nur mit den ausgewählten Farben zu erhalten.


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

Standardeinstellung:   (leer)

Dies ist ein extrem leistungsstarkes und flexibles Tool, mit dem die Farben im Ergebnis gesteuert werden können.

Farben, die im Bild erkannt werden und im Toleranzbereich der Palettenfarben liegen, werden auf die in der Palette am Nächsten liegende Farbe ausgerichtet und erneut zugeordnet, wenn für diese Palettenfarbe eine Neuzuordnung vorgegeben ist. Nicht zugeordnete Farben bleiben unverändert.

Beispiele

Um die erkannten Farben auf das am Nächsten liegende Rot, Grün und Blau auszurichten, verwenden Sie:

#FF0000; 
#00FF00; 
#0000FF;

Um die erkannten Farben, die dem Rot, Grün und Blau am Nächsten liegen, zu bereinigen, andere Farben jedoch unverändert zu belassen, verwenden Sie:

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

Um erkannte Farben, die dem Rot am Nächsten liegen, in Grün zu verwandeln und alles andere unverändert zu belassen, verwenden Sie:

#FF0000 -> #00FF00 ~ 0.02;

Um alles, was dem Rot, Grün und Blau dieser Farben am Nächsten liegt, auszurichten, jedoch alle anderen Farben auf durchsichtiges Schwarz auszurichten (wodurch sie aus dem Ergebnis entfernt werden), verwenden Sie:

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

Farben

Farben werden mithilfe einer einfachen CSS-Farbsyntax vorgegeben. Für (teilweise) durchsichtige Farben empfehlen wir die Verwendung von #RRGGBBAA. Für undurchsichtige Farben empfehlen wir die Verwendung von #RRGGBB.

Vollständig durchsichtige Farben werden im Ergebnis ausgelassen. Gemeinsam mit der Funktion der Neuzuordnung von Farben können Sie auf diese Weise ausgewählte Farben aus dem Ergebnis entfernen.

Sie können maximal 1.024 Farben verwenden.

Toleranz

Die Einheit wird als ARGB-Teilfarbabstand ausgedrückt, wobei 1,0 der Abstand vom undurchsichtigen Rot (#FFFF0000) zum undurchsichtigen Schwarz (#FF000000) ist.

Die maximale Toleranz beträgt 2,0 – der Abstand vom durchsichtigen Schwarz (#00000000) bis zum undurchsichtigen Weiß (#FFFFFFFF).

Die Standardtoleranz ist 2,0. Deshalb werden erkannte Farben standardmäßig auf die in der Palette am Nächsten liegende Farbe ausgerichtet, selbst wenn diese weit entfernt ist. Die Ausrichtung kann auf einzelne Palettenfarben beschränkt werden, indem benutzerspezifische Toleranzen vorgegeben werden.

Wenn Sie es gewohnt sind, mit Farben im Bereich von 0–255 zu arbeiten, teilen Sie den Wert einfach durch 255, und Sie erhalten den Teilwert.


Enum, Standardeinstellung: svg

Ausgabedateiformat.

SVG-Optionen:


Enum, Standardeinstellung: svg_1_1

Geben Sie das SVG-Versionsattribut im SVG-Tag an. Details


Boolesch, Standardeinstellung: false

Ob die Bildgrößenattribute im SVG-Tag enthalten sein sollen. Wird dieser Parameter auf true gesetzt, rendern Viewer die SVG in einer festen Größe. Wird er auf false gesetzt, können Viewer die SVG in der Regel so skalieren, dass sie in den verfügbaren Raum passt. Details


Boolesch, Standardeinstellung: false

Wird dieser Parameter auf true gesetzt, deaktivieren wir die Optionen, die Adobe Illustrator nicht importieren kann. Details

DXF-Optionen:


Enum, Standardeinstellung: lines_and_arcs

DXF-Reader weisen oft ganz unterschiedliche Funktionen auf. Mit dieser Option können Sie die Ausgabe auf die Zeichnungsprimitiven beschränken, die Ihr DXF-Reader tatsächlich unterstützt. Details

Bitmap-Optionen:


Enum, Standardeinstellung: anti_aliased
Value Anti-Aliasing Mode
anti_aliased Die Farben der Pixel, die entlang der Grenze zwischen Formen zu finden sind, werden entsprechend des Bruchteils des von jeder Form abgedeckten Bereichs des Pixels gemischt.
aliased Pixeln werden die Farbe der Form zugewiesen, die die geometrische Mitte des Pixels enthält.

Enum, Standardeinstellung: fill_shapes

Geben Sie an, wie die Ausgabe nachgezeichnet oder gefüllt werden soll. Es gibt einen feinen Unterschied zwischen dem Nachzeichnen von Formen und dem Nachzeichnen der Kanten zwischen Formen. Eine Erläuterung hierzu finden Sie in der ausführlichen Dokumentation.


Enum, Standardeinstellung: cutouts

Legt fest, ob Formen in Ausschnitte in die darunter liegenden Formen platziert werden (cutouts) oder ob sie übereinander gestapelt werden (stacked). Details


Enum, Standardeinstellung: none
Value Shape grouping
none Keine Gruppierung
color Nach Farbe, interagiert mit output.shape_stacking
parent Nach enthaltender Form
layer Nach Zeichnungsreihenfolgen-Ebene
Details

Boolesch, Standardeinstellung: false

Zur Vereinfachung von identifizierten Kreisen, Ellipsen, Rechtecken, Dreiecken und Sternen zu normalen Kurven. Details

Kurven:


Boolesch, Standardeinstellung: true

Ob quadratische Bézierkurven erlaubt sind. Details


Boolesch, Standardeinstellung: true

Ob kubische Bézierkurven erlaubt sind. Details


Boolesch, Standardeinstellung: true

Ob Kreisbögen erlaubt sind. Details


Boolesch, Standardeinstellung: true

Ob elliptische Bögen erlaubt sind. Details


Gleitkommazahl, 0.001 zu 1.0, Standardeinstellung: 0.1

Maximaler Abstand in Pixeln zwischen einer Kurve und der Linie, die sich ihr nähert. Details

Lückenfüllung:


Boolesch, Standardeinstellung: true

Ob um die weiße Linie, die aufgrund von Rendering-Fehlern entsteht und in Vektor-Viewern häufig vorkommt, herum gearbeitet werden soll. Details


Boolesch, Standardeinstellung: false

Ob die Lückenfüllstriche abgeschnitten werden sollen. Wenn output.shape_stacking=stacked gewählt ist, können die Striche abgeschnitten oder nicht skalierende Striche verwendet werden. Details


Boolesch, Standardeinstellung: true

Ob nicht skalierende Lückfüllstriche verwendet werden sollen. Wenn output.shape_stacking=stacked gewählt ist, können die Striche abgeschnitten oder nicht skalierende Striche verwendet werden. Details


Gleitkommazahl, 0.0 zu 5.0, Standardeinstellung: 2.0

Breite der Lückenfüllstriche. Details

Nachzeichnungsart, wenn output.draw_style ist stroke_shapes oder stroke_edges


Boolesch, Standardeinstellung: true

Ob ein nicht skalierender Strich verwendet werden soll. Details


Boolesch, Standardeinstellung: false

Ob eine Überlagerungsfarbe oder die geschätzte Farbe der Form verwendet werden soll. Details


Format: '#RRGGBB', z. B. #FF00FF, Standardeinstellung: #000000

Die Überlagerungsfarbe. Details


Gleitkommazahl, 0.0 zu 5.0, Standardeinstellung: 1.0

Breite des Strichs. Details

Ausgabegröße:


Gleitkommazahl, 0.0 bis 1000.0

Einheitlicher Skalierungsfaktor. Wenn er vorgegeben wird, hat dies Vorrang vor output.size.width und output.size.height.


Gleitkommazahl, 0.0 bis 1.0E12

Breite in Einheiten, die durch output.size.unit vorgegeben sind. Wenn nur entweder Breite oder Höhe vorgegeben ist, wird der andere Wert automatisch berechnet, um das Seitenverhältnis zu bewahren.


Gleitkommazahl, 0.0 bis 1.0E12

Höhe in Einheiten, die durch output.size.unit vorgegeben sind. Wenn nur entweder Breite oder Höhe vorgegeben ist, wird der andere Wert automatisch berechnet, um das Seitenverhältnis zu bewahren.


Enum, Standardeinstellung: none

Die Maßeinheit für Breite und Höhe. Davon sind pt, in, cm und mm physikalische Einheiten und none und px nicht physikalische Einheiten. Diese Unterscheidungen interagieren mit output.size.input_dpi und output.size.output_dpi.


Enum, Standardeinstellung: preserve_inset

Wert Skalierungsregel
preserve_inset Einheitliche Skalierung zur Anpassung an die engere Dimension, damit es keinen Überlauf, sondern einen leeren Raum in der anderen Dimension gibt.
preserve_overflow Einheitliche Skalierung zur Anpassung an die weniger enge Dimension, damit es einen Überlauf in die engere Dimension gibt.
stretch Nicht einheitliche Skalierung zur Anpassung an die angegebene Breite und Höhe
Für beide preserve-Optionen wird die Position in der nicht eingeschränkten Dimension durch output.size.align_x oder output.size.align_y gesteuert.


Gleitkommazahl, 0.0 zu 1.0, Standardeinstellung: 0.5

Horizontale Ausrichtung für output.size.aspect_ratio = preserve_inset oder preserve_overflow.

Wert Horizontale Ausrichtung
0.0 Linksbündig
0.5 Horizontal zentriert
1.0 Rechtsbündig
Kann ein beliebiger Wert zwischen 0.0 und 1.0 sein.


Gleitkommazahl, 0.0 zu 1.0, Standardeinstellung: 0.5

Vertikale Ausrichtung für output.size.aspect_ratio = preserve_inset oder preserve_overflow.

Wert Vertikale Ausrichtung
0.0 Obenbündig
0.5 Vertikal zentriert
1.0 Untenbündig
Kann ein beliebiger Wert zwischen 0.0 und 1.0 sein.


Gleitkommazahl, 1.0 bis 1000000.0

Der DPI-Wert des Eingabebildes wird von der Datei gelesen, wenn er verfügbar ist. Mit diesem Parameter können Sie diesen Wert überschreiben. Der daraus resultierende Wert wird zum Berechnen der physikalischen Größe des Eingabebildes verwendet. Daraus wird wiederum die Ausgabegröße berechnet, wenn für die Ausgabe physikalische Größen vorgegeben sind, jedoch keine explizite Breite oder Höhe.


Gleitkommazahl, 1.0 bis 1000000.0

Der DPI-Wert des Ausgabebildes. Dieser Wert wird zum Berechnen der Pixelgröße der Bitmap-Ausgabe verwendet, wenn physikalische Einheiten vorgegeben sind.

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

Dieser Endpunkt ermöglicht Ihnen Folgendes:

  1. Herunterladen des vollständigen Produktionsergebnisses nach einem Vorschau-API-Aufruf.

    Wir nehmen die Kopfzeile X-Receipt in die Antwort auf, damit Sie anschließend zusätzliche Ausgabeformate zum reduzierten Download-Formatpreis herunterladen können.

  2. Herunterladen mehrerer Ausgabeformate für dasselbe Bild und Nutzung mehrerer Verarbeitungsoptionen zum reduzierten Download-Formatpreis, ohne dass sie alle ganz von Anfang an vektorisiert werden müssen.

Parameter


Ein Bild-Token, das in der Kopfzeile X-Image-Token in einem früheren Vektorisierungs-API-Aufruf zurückgegeben wird, wenn policy.retention_days > 0.


Zeichenfolge
Optional

Ein Beleg, der in der Kopfzeile X-Receipt in einem früheren Download-API-Aufruf zurückgegeben wurde, als Sie ein Upgrade von einer Vorschau zu einem Produktionsergebnis durchgeführt haben.

Wenn Sie ein Vorschau-Bild-Token senden, müssen Sie den Beleg hinzufügen, um den reduzierten Download-Formatpreis zu erhalten.


Enum, Standardeinstellung: svg

Ausgabedateiformat.

SVG-Optionen:


Enum, Standardeinstellung: svg_1_1

Geben Sie das SVG-Versionsattribut im SVG-Tag an. Details


Boolesch, Standardeinstellung: false

Ob die Bildgrößenattribute im SVG-Tag enthalten sein sollen. Wird dieser Parameter auf true gesetzt, rendern Viewer die SVG in einer festen Größe. Wird er auf false gesetzt, können Viewer die SVG in der Regel so skalieren, dass sie in den verfügbaren Raum passt. Details


Boolesch, Standardeinstellung: false

Wird dieser Parameter auf true gesetzt, deaktivieren wir die Optionen, die Adobe Illustrator nicht importieren kann. Details

DXF-Optionen:


Enum, Standardeinstellung: lines_and_arcs

DXF-Reader weisen oft ganz unterschiedliche Funktionen auf. Mit dieser Option können Sie die Ausgabe auf die Zeichnungsprimitiven beschränken, die Ihr DXF-Reader tatsächlich unterstützt. Details

Bitmap-Optionen:


Enum, Standardeinstellung: anti_aliased
Value Anti-Aliasing Mode
anti_aliased Die Farben der Pixel, die entlang der Grenze zwischen Formen zu finden sind, werden entsprechend des Bruchteils des von jeder Form abgedeckten Bereichs des Pixels gemischt.
aliased Pixeln werden die Farbe der Form zugewiesen, die die geometrische Mitte des Pixels enthält.

Enum, Standardeinstellung: fill_shapes

Geben Sie an, wie die Ausgabe nachgezeichnet oder gefüllt werden soll. Es gibt einen feinen Unterschied zwischen dem Nachzeichnen von Formen und dem Nachzeichnen der Kanten zwischen Formen. Eine Erläuterung hierzu finden Sie in der ausführlichen Dokumentation.


Enum, Standardeinstellung: cutouts

Legt fest, ob Formen in Ausschnitte in die darunter liegenden Formen platziert werden (cutouts) oder ob sie übereinander gestapelt werden (stacked). Details


Enum, Standardeinstellung: none
Value Shape grouping
none Keine Gruppierung
color Nach Farbe, interagiert mit output.shape_stacking
parent Nach enthaltender Form
layer Nach Zeichnungsreihenfolgen-Ebene
Details

Boolesch, Standardeinstellung: false

Zur Vereinfachung von identifizierten Kreisen, Ellipsen, Rechtecken, Dreiecken und Sternen zu normalen Kurven. Details

Kurven:


Boolesch, Standardeinstellung: true

Ob quadratische Bézierkurven erlaubt sind. Details


Boolesch, Standardeinstellung: true

Ob kubische Bézierkurven erlaubt sind. Details


Boolesch, Standardeinstellung: true

Ob Kreisbögen erlaubt sind. Details


Boolesch, Standardeinstellung: true

Ob elliptische Bögen erlaubt sind. Details


Gleitkommazahl, 0.001 zu 1.0, Standardeinstellung: 0.1

Maximaler Abstand in Pixeln zwischen einer Kurve und der Linie, die sich ihr nähert. Details

Lückenfüllung:


Boolesch, Standardeinstellung: true

Ob um die weiße Linie, die aufgrund von Rendering-Fehlern entsteht und in Vektor-Viewern häufig vorkommt, herum gearbeitet werden soll. Details


Boolesch, Standardeinstellung: false

Ob die Lückenfüllstriche abgeschnitten werden sollen. Wenn output.shape_stacking=stacked gewählt ist, können die Striche abgeschnitten oder nicht skalierende Striche verwendet werden. Details


Boolesch, Standardeinstellung: true

Ob nicht skalierende Lückfüllstriche verwendet werden sollen. Wenn output.shape_stacking=stacked gewählt ist, können die Striche abgeschnitten oder nicht skalierende Striche verwendet werden. Details


Gleitkommazahl, 0.0 zu 5.0, Standardeinstellung: 2.0

Breite der Lückenfüllstriche. Details

Nachzeichnungsart, wenn output.draw_style ist stroke_shapes oder stroke_edges


Boolesch, Standardeinstellung: true

Ob ein nicht skalierender Strich verwendet werden soll. Details


Boolesch, Standardeinstellung: false

Ob eine Überlagerungsfarbe oder die geschätzte Farbe der Form verwendet werden soll. Details


Format: '#RRGGBB', z. B. #FF00FF, Standardeinstellung: #000000

Die Überlagerungsfarbe. Details


Gleitkommazahl, 0.0 zu 5.0, Standardeinstellung: 1.0

Breite des Strichs. Details

Ausgabegröße:


Gleitkommazahl, 0.0 bis 1000.0

Einheitlicher Skalierungsfaktor. Wenn er vorgegeben wird, hat dies Vorrang vor output.size.width und output.size.height.


Gleitkommazahl, 0.0 bis 1.0E12

Breite in Einheiten, die durch output.size.unit vorgegeben sind. Wenn nur entweder Breite oder Höhe vorgegeben ist, wird der andere Wert automatisch berechnet, um das Seitenverhältnis zu bewahren.


Gleitkommazahl, 0.0 bis 1.0E12

Höhe in Einheiten, die durch output.size.unit vorgegeben sind. Wenn nur entweder Breite oder Höhe vorgegeben ist, wird der andere Wert automatisch berechnet, um das Seitenverhältnis zu bewahren.


Enum, Standardeinstellung: none

Die Maßeinheit für Breite und Höhe. Davon sind pt, in, cm und mm physikalische Einheiten und none und px nicht physikalische Einheiten. Diese Unterscheidungen interagieren mit output.size.input_dpi und output.size.output_dpi.


Enum, Standardeinstellung: preserve_inset

Wert Skalierungsregel
preserve_inset Einheitliche Skalierung zur Anpassung an die engere Dimension, damit es keinen Überlauf, sondern einen leeren Raum in der anderen Dimension gibt.
preserve_overflow Einheitliche Skalierung zur Anpassung an die weniger enge Dimension, damit es einen Überlauf in die engere Dimension gibt.
stretch Nicht einheitliche Skalierung zur Anpassung an die angegebene Breite und Höhe
Für beide preserve-Optionen wird die Position in der nicht eingeschränkten Dimension durch output.size.align_x oder output.size.align_y gesteuert.


Gleitkommazahl, 0.0 zu 1.0, Standardeinstellung: 0.5

Horizontale Ausrichtung für output.size.aspect_ratio = preserve_inset oder preserve_overflow.

Wert Horizontale Ausrichtung
0.0 Linksbündig
0.5 Horizontal zentriert
1.0 Rechtsbündig
Kann ein beliebiger Wert zwischen 0.0 und 1.0 sein.


Gleitkommazahl, 0.0 zu 1.0, Standardeinstellung: 0.5

Vertikale Ausrichtung für output.size.aspect_ratio = preserve_inset oder preserve_overflow.

Wert Vertikale Ausrichtung
0.0 Obenbündig
0.5 Vertikal zentriert
1.0 Untenbündig
Kann ein beliebiger Wert zwischen 0.0 und 1.0 sein.


Gleitkommazahl, 1.0 bis 1000000.0

Der DPI-Wert des Eingabebildes wird von der Datei gelesen, wenn er verfügbar ist. Mit diesem Parameter können Sie diesen Wert überschreiben. Der daraus resultierende Wert wird zum Berechnen der physikalischen Größe des Eingabebildes verwendet. Daraus wird wiederum die Ausgabegröße berechnet, wenn für die Ausgabe physikalische Größen vorgegeben sind, jedoch keine explizite Breite oder Höhe.


Gleitkommazahl, 1.0 bis 1000000.0

Der DPI-Wert des Ausgabebildes. Dieser Wert wird zum Berechnen der Pixelgröße der Bitmap-Ausgabe verwendet, wenn physikalische Einheiten vorgegeben sind.

Löschen POST
https://api.vectorizer.ai/api/v1/delete

Bilder, die mit policy.retention_days > 0 vektorisiert wurden, werden für den angeforderten Zeitraum gespeichert und kurz danach automatisch gelöscht.

Normalerweise muss dieser Endpunkt nicht aufgerufen werden. Er wird bereitgestellt, damit Sie Bilder löschen können, bevor der Speicherzeitraum abläuft. Das frühzeitige Löschen eines Bildes bedeutet nicht, dass Sie für die restlichen Speichertage eine Rückerstattung erhalten.

Parameter


Ein Bild-Token, das in der Kopfzeile X-Image-Token in einem früheren Vektorisierungs-API-Aufruf zurückgegeben wird, wenn policy.retention_days > 0.

Antwortattribute

success

true Das Bild-Token wurde tatsächlich gelöscht.

Beispiel einer Antwort

{
  "success" : true
}

Kontostatus GET
https://api.vectorizer.ai/api/v1/account

Rufen Sie allgemeine Informationen über Ihr Konto auf, beispielsweise Abonnementstatus und Anzahl der verbliebenen Punkte.

Parameter

Keine

Antwortattribute

subscriptionPlan

Der Plan, den Sie derzeit abonniert haben, bzw. „Keine“.

subscriptionState

Der Status Ihres aktuellen Abonnements („aktiv“ oder „überfällig“) oder „abgelaufen“, wenn kein Abonnement vorliegt.

credits

Die Anzahl der in Ihrem Konto verbliebenen API-Punkte. Ist 0, wenn derzeit kein Abonnement vorliegt oder wenn es sich um einen Plan ohne API handelt. Kann eine Bruchzahl sein und muss deshalb als Double analysiert werden.

Benutzername = API-ID, Kennwort = geheimer API-Schlüssel

cURL

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

Beispiel einer Antwort

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

API-Änderungsprotokoll

DatumÄndern
01.10.2024 Es wurde ein KI-Chatbot hinzugefügt, der die Integration mit der API unterstützt.
23.09.2024 API wurde stark erweitert, um mehr Betriebsmodi zu unterstützen. Bild-Tokens, Belege, Kopfzeilen für Gebühren pro Aufruf und die Endpunkte „Download“ und „Löschen“ wurden hinzugefügt.
11.06.2024 processing.palette wurde hinzugefügt
04.03.2024 Abschnitt über Timeouts hinzugefügt.
24.01.2024 Kontostatus-Endpunkt wurde hinzugefügt. Kürzlich aufgetretene API-Fehler wurden der Kontoseite hinzugefügt. Eine Liste aller API-Fehlerantworten wurde hinzugefügt.
16.01.2024 Fehler-JSON-Objekt wurde dokumentiert.
03.10.2023 Es wurde klargestellt, dass output.gap_filler.enabled=true zu einem Ergebnis mit mehr Farben als durch processing.max_colors angefordert führt.
20.09.2023 mode wurde hinzugefügt
01.08.2023 Es wurde eine Ausgabegrößen-Optionsgruppe mit umfangreichen Funktionen mit folgenden Optionen hinzugefügt: 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 und output.size.output_dpi. Es wurde eine Bitmap-Ausgabe-Optionsgruppe mit einer Option hinzugefügt: output.bitmap.anti_aliasing_mode.
07.06.2023 processing.max_colors wurde hinzugefügt
31.05.2023 API-Parameter wurden erheblich erweitert. API-Endpunkt wurde aktualisiert.
10.03.2023 Erstversion.
API-Schlüssel abrufen