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

Preise

Die Integration und Tests der API sind kostenlos; es ist kein Abonnement erforderlich.

Benutzen Sie einfach mode=test für die Entwicklung. Die Qualität des Ergebnisses können Sie mithilfe der interaktiven Web-App auf der Homepage der Website beurteilen.

Produktionsergebnisse erfordern ein Abonnement und kosten jeweils 1,00 Punkt.

Wir bieten außerdem 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 und kosten jeweils 0,20 Punkte.

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

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-Objekt

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.

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.

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

Dieser Modus ist 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.

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 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;

Default:   (empty)

Dies ist ein sehr leistungsfähiger und flexibler Mechanismus zur Steuerung der Farben im Ergebnis.

Im Bild erkannte Farben, die innerhalb der Toleranz einer der Palettenfarben liegen, werden an der nächstgelegenen Palettenfarbe ausgerichtet und neu zugeordnet, wenn für diese Palettenfarbe eine Neuzuordnung festgelegt wurde. Unübertroffene Farben bleiben unverändert.

Beispiele

Verwenden Sie Folgendes, um die erkannten Farben an Rot, Grün und Blau anzupassen:

#FF0000; 
#00FF00; 
#0000FF;

Um erkannte Farben zu entfernen, die sich in der Nähe von Rot, Grün und Blau befinden, andere jedoch unverändert zu lassen, verwenden Sie:

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

Um erkannte Farben, die fast rot sind, in Grün umzuwandeln und alles andere unverändert zu lassen, verwende:

#FF0000 -> #00FF00 ~ 0.02;

Um alles, was in der Nähe von Rot, Grün und Blau an diesen Farben liegt, aber alle anderen Farben in transparentem 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 der grundlegenden CSS-Farbsyntax spezifiziert. Für (teilweise) transparente Farben empfehlen wir #RRGGBBAA zu verwenden. Für undurchsichtige Farben empfehlen wir #RRGGBB zu verwenden.

Vollständig transparente Farben werden im Ergebnis weggelassen. Zusammen mit der Funktion zur Neuzuordnung von Farben können Sie damit ausgewählte Farben aus dem Ergebnis entfernen.

You can use a maximum of 1.024 colors.

Toleranz

Die Einheit wird im fraktionierten ARGB-Farbabstand angegeben, wobei 1,0 der Abstand zwischen undurchsichtigem Rot (#FFFF0000) und undurchsichtigem Schwarz (#FF000000) ist.

Die maximale Toleranz beträgt 2,0, was dem Abstand zwischen transparentem Schwarz (#00000000) und undurchsichtigem Weiß (#FFFFFFFF) entspricht.

The default tolerance is 2,0, so by default detected colors will snap to their nearest palette color, even if it is far away. Sie können das Ausrichten auf einzelne Palettenfarben beschränken, indem Sie benutzerdefinierte Toleranzen angeben.

Wenn Sie es gewohnt sind, mit Farben im Bereich von 0 bis 255 zu arbeiten, teilen Sie einfach durch 255, um den Bruchwert 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.

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 123:[secret]

Beispiel einer Antwort

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

API-Änderungsprotokoll

DatumÄndern
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