API para la vectorización de imágenes

Vectorizer.AI ofrece una API completa para trazar mapas de bits. La API convierte píxeles en vectores de manera completamente automática y con fidelidad de la más alta calidad.

Obtener la clave de la API

Inicio rápido

Cargue una imagen de mapa de bits y obtenga un resultado vectorizado:

$ curl https://es.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://es.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://es.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://es.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://es.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://es.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://es.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://es.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://es.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://es.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://es.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://es.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://es.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://es.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 de la API

Creamos un ChatGPT personalizado que puede ayudarle con su intergración de la API. Puede contestar preguntas sobre la documentación de la API y proporcionar código de muestra en su idioma preferido adaptado al uso que le dará.

Chatee con el chatbot de la API de Vectorizer.AI.

El chatbot está en su versión beta y comete errores. Verifique las respuestas y pídale que revise el código para corregir los errores y las omisiones.

Cómo sar esta API

La API es compatible con muchos diferentes casos de uso. Estas son algunas comunes:

Una sola imagen Envíe una imagen en mapa de bits, obtenga un resultado en vector, listo

Use el punto de conexión Vectorizar y los ejemplos de código de arriba.

Vista previa primero Muéstrele una vista previa a su posible cliente antes de que compre

Si necesita hacer muchas llamadas de API antes de lograr una venta, puede usar las vistas previas de costo más bajo hasta que logre conseguir al cliente.

  1. Use el punto de conexión Vectorizar con mode=preview y con policy.retention_days > 0 para obtener la vista previa, asegurándose de conservar el Token de la imagen devuelto con el encabezado de la raspiest X-Image-Token.

  2. Después de la conversión, use el punto de conexión Descargar con el Token de la imagen para descargar el resultado completo.

  3. Opcional: si necesita el resultado en formatos adicionales (p. ej. PNG, PDF, etc.), asegúrese de conservar el Recibo devuelto en el encabezado de respuesta de la descarga X-Receipt. Luego use el punto de conexión Descargar con el Token de la imagen y con el Recibo para descargar los demás formatos.

Múltiples formatos Necesita, p. ej. resltados tanto en PNG como en SVG

  1. Use el punto de conexión Vectorizar con policy.retention_days > 0 para obtener el primer resultado y asegúrese de conservar el Token de imagen devuelto en el encabezado de respuesta X-Image-Token.

  2. Use el punto de conexión Descargar con el Token de la imagen para descargar los otros formatos.

Opciones múltiples Necesita procesar cada imagen con opciones múltiples de procesamiento

  1. Use el punto de conexión Vectorizar con policy.retention_days > 0 para obtener el primer resultado y asegúrese de conservar el Token de imagen devuelto en el encabezado de respuesta X-Image-Token.

  2. Use el punto de conexión Vectorizar con el Token de la imagen para repetirlo con las otras opciones de procesamiento que necesita.

  3. Alternativamente, puede procesar cada imagen individualmente y no preocuparse del Token de la imagen. El Token de la imagen le ahorra algo de ancho de banda y espera.

Precios

AcciónCréditosDescripción
Pruebas0.00

La integración y la prueba de la API son gratis. No requieren suscripción.

Use mode=test y mode=test_preview para el desarrollo.

Puede ver la calidad del resultado usando la aplicación Web interactiva en la página inicial.

Vista previa0.20

Ofrecemos una vista previa del resultado que puede mostrar a los usuarios finales antes de que ellos paguen.

Las vistas previas son imágenes en PNG cuatro veces más grandes que la imagen original y tienen una marca de agua discreta.

Use mode=preview para ver un resultado preliminar.

Vectorizar1.00 Convierta una imagen de mapa de bits en una imagen de vectores.
Ver planes0.90 Descargue el resultado de la producción después de una petición de vista previa de la API. Descontado, en comparación con la conversión en vectores desde cero.
Formato de descarga0.10 Descargue otro formato (p. ej. SVG, PNG, PDF, etc.) del resultado. Descontado, en comparación con la conversión en vectores desde cero.
Días de almacenamiento0.01 Precio por día de almacenamiento de un resultado después del primer día, que es gratis.

Consulte la página de créditos para ver los planes de suscripción.

Autenticación y seguridad

La API usa autenticación de acceso básico a HTTP estándar. Todas las peticiones a la API se harán en HTTPS e incluirán su información de acceso a la API, donde la Id de la API es el usuario y el código secreto de la API es la contraseña.

Su biblioteca cliente de http debe ser compatible con la Indicación de nombre del servidor (SNI) para poder hacer peticiones. Si tiene errores raros de protocolo de enlace, esta es la razón más probable.

Limitaciones de la velocidad de respuesta

El uso de la API tiene limitaciones de velocidad de respuesta con amplias asignaciones sin límite superior.

Durante la operación normal impulsada por el usuario es improbable que vea límites de la velocidad de respuesta ya que en ese caso el uso tiende a fluir de una manera que el servicio maneja muy bien.

Sin embargo, para los procesos en lotes recomendamos que comience con 5 hilos máximo y puede agregar 1 hilo nuevo cada 5 minutos hasta que llegue al nivel deseado de paralelismo. Si necesita más de 100 hilos actuales, comuníquese con nosotros antes de comenzar.

Si envía demasiadas peticiones comenzará a recibir la respuesta 429 Too Many Requests. Si esto sucede, debe aplicar una espera lineal: cuando reciba la primera respuesta de ese tipo, espere 5 segundos antes de enviar la siguiente petición. Cuando reciba la segunda respuesta 429 consecutiva, espere 2*5=10 segundos antes de enviar la siguiente petición. Cuando reciba la tercera respuesta, espere 3*5=15, etc.

Puede restablecer el contador de espera después de una petición exitosa y deberá poder aplicar la espera por cada hilo (es decir, los hilos deben operar de manera independiente entre sí).

Tiempos de espera

Si bien las peticiones de las API normalmente se completan en segundos, es posible que durante situaciones transitorias de cargas pico el tiempo de procesamiento sea más largo.

Para asegurarse de que la biblioteca de su cliente no suspenda prematuramente las peticiones de la API, se deberá configurar con un tiempo de espera de inactividad de por lo menos 180 segundos.

JSON de error

Usamos estratos convencionales de HTTP para indicar el éxito o el fracaso de una petición API e incluímos información importante del error en el objeto de error JSON devuelto.

Tratamos de siempre regresar un objeto de error JSON con las solicitudes problemáticas. Sin embargo, siempre es teóricamente posible tener fallas del servidor interno que conducen a una respuesta de error que no es tipo JSON.

Atributos

statusEl estado HTTP de la respuesta, se repite aquí para ayudarle con la depuración.
codeCódigo de error interno de Vectorizer.AI.
messageMensaje de error en lenguaje natural, previsto para ayudar con la depuración.

Si el estadeo del HTTP de su petición es 200, no se devolverá un objeto JSON de error y podrá suponer en términos generales que la petición tuvo éxito.

Algunas bibliotecas de clientes HTTP producen exepciones para estratos HTTP en la gama de 400-599. Tendrá que darse cuenta de esas excepciones y resolverlas apropiadamente.

HTTP StatusSignificado
200-299

Éxito

400-499

Hay un problema con la información proporcionada en la solicitud (p. ej. un parámetro faltante). Revise el mensaje de error para determinar cómo arreglarlo.

500-599

Hubo un error interno de Vectorizer.AI. Espere un momento y vuelva a intentar, y si el problema persiste, envíenos un mensaje de correo electrónico.

Ejemplo de una respuesta de error

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

Los errores recientes de la API se enumeran en la página de su cuenta para que los pueda depurar.

También hay una lista de todas las respuestas de error que la API devuelve.

Encabezados de respuesta

Estos son los encabezados de respuesta personalizados que usamos

EncabezadoDescripción
X-Image-Token

Devuelto cuando la petición de vecotrización tiene policy.retention_days > 0. Puede usarse para:

  1. Descargar el resultado de producción después de una llamada de vista previa de la API con descuento en comparación con la vectorización desde cero.

  2. Descargue formatos adicionales (p. ej. SVG, PNG, PDF, etc.) del resultado a un precio reducido en comparación con la vectorización desde cero.

  3. Vuelva a vectorizar la misma imagen con otras opciones de procesamiento.

X-Receipt

Se devuelve al descargar un resultado de producción con un token de imagen de vista previa. Se puede usar para descargar formatos adicionales (por ejemplo, SVG, PNG, PDF, etc.) del resultado a la velocidad del formato de descarga en lugar de a la velocidad de previsualización de actualización.

X-Credits-Calculated

Se devolvió con solicitudes de prueba para mostrar el costo en el que se habría incurrido si hubiera sido una solicitud regular.

X-Credits-Charged

Se devuelve con todas las solicitudes para mostrar el costo incurrido. Siempre es 0 para las solicitudes de prueba.

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

Para convertir una imagen en vectores se ejecuta una petición HTTP POST estándar para cargar el archivo. Tenga en cuenta que el tipo de contenido tiene que ser multipart/form-data cuando carga archivos binarios.

La tabla siguiente muestra todos los parámetros de la API para probar. Cada parámetro tiene una breve descripción, pero asegúrese de ver la documentación de las opciones detalladas de los resultados.

Parámetros

La imagen original se debe proporcionar como una de:


Binaria

Un archivo binario.


Cadena

Un cadena codificada con base 64. La cadena no puede de más de 1 megabyte.


Cadena

Un URL para obtener y procesar.


An Image Token, returned in the X-Image-Token header in an earlier vectorization API call where policy.retention_days > 0.

Debe ser un archivo .bmp, .gif, .jpeg, .png o .tiff.

El tamaño máximo de una imagen para cargarla (= ancho × altura) es 33.554.432píxeles, que se reduce a input.max_pixels.


Enum, predeterminado: production
Value Processing Mode Credits
production

Este modo está previsto para producción y admite todos los parámetros.

1.00
preview

Este modo está previsto para cuando quiere mostrarle al usuario final una vista previa antes de comprar.

Produce un resultado en PNG 4x con una marca de agua discreta y hace caso omiso de los parámetros contradictorios.

0.20
test, test_preview

Estos modos están pensados para que los usen los desarrolladores cuando se integren con el servicio. Admite todos los parámetros, pero tiene una marca de agua fuerte.

Los resultados de la prueba son gratis y no requieren una subscripción activa, así es que puede integrarse con el servicio sin cargo.

We include an X-Credits-Calculated header in the response so you can affirmatively know what you would have been charged for the corresponding production calls.

Gratis

Número entero, 100 a 3145828, predeterminado: 2097252

El tamaño máximo de la imagen de entrada (= ancho × altura en píxeles). Las imágenes más grandes serán reducidas a este tamaño antes de procesarlas.


Número entero, 0 a 30, predeterminado: 0

El número de días durante los que se conservará la imagen de entrada y su resultado. When you specify policy.retention_days > 0 we include an X-Image-Token header in the response.

Esto tiene tres usos principales:

  1. Después de realizar una llamada a la API de vista previa, puede descargar el resultado de producción rápidamente y con un descuento.

  2. Tras vectorizar una imagen, puede descargar varios formatos de salida para la misma imagen y opciones de procesamiento sin tener que vectorizarlos todos desde cero. Esto ahorra significativamente tanto en créditos como en latencia.

  3. Cuando desee volver a vectorizar la misma imagen con diferentes opciones de procesamiento. Esto le permite reducir la latencia de las llamadas y ahorrar ancho de banda.

The first day of storage is free, then a charge of 0,01 credits per day applies.

Consulte también el punto final de descarga.


Número entero, 0 a 256, predeterminado: 0

El número máximo de colores a usar para el resultado.

0 significa ilimitado. 1 y 2 significan dos colores, p. ej. negro y blanco. N>=2 significa ese número de colores.

Tome en cuenta que si output.gap_filler.enabled=true (la opción predeterminada), el resultado también contendrá mezclas de los colores seleccionados. Inhabilite Rellenar espacios para obtener un resultado solo con los colores seleccionados.


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

Default:   (vacío)

Este es un mecanismo sumamente potente y flexible para controlar los colores en el resultado.

Los colores detectados en la imagen que están dentro de la tolerancia de cualquiera de los colores de la paleta se ajustarán y reasignarán al color más cercano de la paleta si ese color de la paleta tiene una reasignación especificada. Los colores que no tienen una asignación no cambiarán.

Ejemplos

Para ajustar los colores detectados al rojo, verde y azul más cercano, use:

#FF0000; 
#00FF00; 
#0000FF;

Para ajustar los colores detectados ceca de rojo, verde y azul, pero dejar los otros sin cambiar, use:

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

Para cambiar los colores detectados cerca del rojo en verde y dejar los demás sin cambiar, use:

#FF0000 -> #00FF00 ~ 0.02;

Para ajustar todos los colores que se acercan a rojo, verde y azul a esos colores, pero ajustar todos los demás colores a negro transparente (o sea que se eliminarán del resultado), use:

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

Colores

Los colores se especifican usando la sintaxis de color CSS. Para los colores parcialmente transparentes recomendamos usar #RRGGBBAA. Para los colores opacos recomendamos usar #RRGGBB.

Los colores totalmente transparentes se omiten del resultado. Además de la función de reasignar colores, puede usarla para eliminar ciertos colores del resultado.

Puede usar un máximo de 1.024 colores.

Tolerancia

La unidad es en distancia fraccional del color ARGB, donde 1,0 es la distancia entre rojo opaco (#FFFF0000) y negro opaco (#FF000000).

La tolerancia máxima es 2,0, que es la distancia entre negro transparente (#00000000) y blanco opaco (#FFFFFFFF).

La tolerancia predeterminada es 2,0, así es que por opción predeterminada, los colores detectados se ajustarán a su color más cercano de la paleta, aunque esté lejos. Puede restringir el ajuste a una paleta individual de colores especificando tolerancias predeterminadas.

Si está acostumbrado a trabajar con colores en el margen de 0-255, simplemente divida entre 255 para obtener el valor fraccional.


Enum, predeterminado: svg

Formato del archivo resultante.

Opciones de SVG:


Enum, predeterminado: svg_1_1

Especifique el atributo de versión de SVG en la etiqueta SVG. Detalles


Booleano, predeterminado: false

Si incluir los atributos de tamaño de imagen en la etiqueta SVG. Cuando true loS USUARIOS generalmente verán la imagen en SVG de un tamaño fijo. Cuando false los usuarios generalmente dejarán que la imagen en SVG se ajuste al tamaño disponible. Detalles


Booleano, predeterminado: false

Cuando true inhabilitamos opciones que Adobe Illustrator no puede importar. Detalles

opciones de DXF:


Enum, predeterminado: lines_and_arcs

Los lectores de DXF varían ampliamente en sus habilidades. Esta opción le permite restringir el resultado a las primitivas gráficas compatibles con su lector de DXF. Detalles

Opciones de mapas de bits:


Enum, predeterminado: anti_aliased
Value Anti-Aliasing Mode
anti_aliased Los píxeles a lo largo de los bordes entre las figuras tienen los colores mezclados según la fracción del área del píxel cubierta por cada figura.
aliased A los píxeles se les asigna el color de la figura que contiene el centro geométrico del píxel.

Enum, predeterminado: fill_shapes

Especifique cómo quiere que el producto se trace o rellene. Existe una diferencia sutil entre delinear las figuras y delinear los bordes entre cada una. Consulte la documentación detallada para ver una explicación


Enum, predeterminado: cutouts

Determina si las figuras son colocadas en recortes en las figuras abajo (cutouts) o si se apilarán (stacked). Detalles


Enum, predeterminado: none
Value Shape grouping
none Sin agrupar
color Por color, interactúa con output.shape_stacking
parent Por la figura que contiene a las demás
layer Por Capa según el orden de dibujo
Detalles

Booleano, predeterminado: false

Aplanar círculos, elipses, rectángulos, triángulos y estrellas que se hayan identificado en curvas ordinarias. Detalles

Curvas:


Booleano, predeterminado: true

Si permitir las curvas de Bézier cuadráticas. Detalles


Booleano, predeterminado: true

Si permitir las curvas de Bézier cúbicas. Detalles


Booleano, predeterminado: true

Si permitir arcos circulares. Detalles


Booleano, predeterminado: true

Si permitir arcos elípticos. Detalles


Float, 0.001 a 1.0, predeterminado: 0.1

Distancia máxima en píxeles entre una curva y la línea que la aproxima. Detalles

Rellenar espacios:


Booleano, predeterminado: true

Si solucionar los errores que producen líneas blancas comunes en los visores de vectores. Detalles


Booleano, predeterminado: false

Si recortar los trazos para rellenar espacios. Cuando output.shape_stacking=stacked usar recorte o trazos sin ajuste de escala. Detalles


Booleano, predeterminado: true

Si usar trazos para rellenar sin ajuste de escala. Cuando output.shape_stacking=stacked usar recorte o trazos sin ajuste de escala. Detalles


Float, 0.0 a 5.0, predeterminado: 2.0

Ancho de los trazos para rellenar espacios. Detalles

Estilo de delineado cuando output.draw_style es stroke_shapes o stroke_edges


Booleano, predeterminado: true

Si usar delineado no escalable. Detalles


Booleano, predeterminado: false

Si usar un color que invalida o el color estimado de la figura. Detalles


Formato: '#RRGGBB', p. ej. #FF00FF, predeterminado: #000000

El color de reemplazo. Detalles


Float, 0.0 a 5.0, predeterminado: 1.0

Ancho del delineado. Detalles

Tamaño del archivo:


Float, 0.0 a 1000.0

Factor de escala uniforme. Si se especifica, tiene prioridad antes que output.size.width y output.size.height


Float, 0.0 a 1.0E12

Ancho en unidades especificadas por output.size.unit. Si se especifica solamente un ancho y una altura, los otros se calculan automáticamente para preservar la relación de aspecto.


Float, 0.0 a 1.0E12

Altura en unidades especificadas por output.size.unit. Si se especifica solamente un ancho y una altura, los otros se calculan automáticamente para preservar la relación de aspecto.


Enum, predeterminado: none

La unidad de medida para el ancho y la altura. De estos, pt, in, cm y mm son unidades físicas y none y px no son unidades físicas. Estas distinciones interactúan con output.size.input_dpi y output.size.output_dpi.


Enum, predeterminado: preserve_inset

Valor Regla para ajustar a escala
preserve_inset Ajustar a escala de modo uniforme para que quepa en la dimensión más pequeña, de modo que no se pasa de los límites, sino que es espacio vacío en la otra dimensión
preserve_overflow Ajustar a escala de modo uniforme para que quepa en la dimensión menos ajustada, pero se pase de los límites en la dimensión más pequeña
stretch Ajustar a escala no uniforme para que quepa en el ancho y la altura especificados
Para cualquiera de las opciones de preserve, la posición de la dimensión no constreñida sea controlada por output.size.align_x o por output.size.align_y.


Float, 0.0 a 1.0, predeterminado: 0.5

Alineación horizontal para output.size.aspect_ratio = preserve_inset o preserve_overflow.

Valor Alineación horizontal
0.0 Alineada a la izquierda
0.5 Centrada horizontalmente
1.0 Alineada a la derecha
Puede ser un valor entre 0.0 y 1.0.


Float, 0.0 a 1.0, predeterminado: 0.5

Alineación vertical para output.size.aspect_ratio = preserve_inset o preserve_overflow.

Valor Alineación vertical
0.0 Alineada arriba
0.5 Centrada verticalmente
1.0 Centrada abajo
Puede ser un valor entre 0.0 y 1.0.


Float, 1.0 a 1000000.0

Los PPP de la imagen se leen del archivo, cuando están disponibles. Este parámetro permite invalidar ese valor. El valor resultante se usa para calcular el tamaño físico de la imagen original, que se usa para calcular el tamaño del a imagen resultante, si se especifican unidades físicas para la imagen resultante, pero no un ancho o una altura explícitos.


Float, 1.0 a 1000000.0

Los PPP de la imagen resultante. Esto se usa para calcular el tamaño en píxeles de la imagen resultante en mapas de bits cuando se especifican unidades físicas.

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

Este punto final le permite:

  1. Descargue el resultado de producción completo después de una llamada a la API de vista previa.

    We include an X-Receipt header in the response so you can download additional output formats at the reduced download format rate afterwards.

  2. Descargue varios formatos de salida para obtener la misma imagen y opciones de procesamiento con una velocidad de formato de descarga reducida y sin tener que vectorizarlos todos desde cero.

Parámetros


An Image Token, returned in the X-Image-Token header in an earlier vectorization API call where policy.retention_days > 0.


Cadena
Opcional

A receipt, returned in the X-Receipt header in an earlier download API call where you upgraded a preview to a production result.

Al enviar un token de imagen de vista previa, debes incluir el recibo para obtener una tarifa de formato de descarga reducida.


Enum, predeterminado: svg

Formato del archivo resultante.

Opciones de SVG:


Enum, predeterminado: svg_1_1

Especifique el atributo de versión de SVG en la etiqueta SVG. Detalles


Booleano, predeterminado: false

Si incluir los atributos de tamaño de imagen en la etiqueta SVG. Cuando true loS USUARIOS generalmente verán la imagen en SVG de un tamaño fijo. Cuando false los usuarios generalmente dejarán que la imagen en SVG se ajuste al tamaño disponible. Detalles


Booleano, predeterminado: false

Cuando true inhabilitamos opciones que Adobe Illustrator no puede importar. Detalles

opciones de DXF:


Enum, predeterminado: lines_and_arcs

Los lectores de DXF varían ampliamente en sus habilidades. Esta opción le permite restringir el resultado a las primitivas gráficas compatibles con su lector de DXF. Detalles

Opciones de mapas de bits:


Enum, predeterminado: anti_aliased
Value Anti-Aliasing Mode
anti_aliased Los píxeles a lo largo de los bordes entre las figuras tienen los colores mezclados según la fracción del área del píxel cubierta por cada figura.
aliased A los píxeles se les asigna el color de la figura que contiene el centro geométrico del píxel.

Enum, predeterminado: fill_shapes

Especifique cómo quiere que el producto se trace o rellene. Existe una diferencia sutil entre delinear las figuras y delinear los bordes entre cada una. Consulte la documentación detallada para ver una explicación


Enum, predeterminado: cutouts

Determina si las figuras son colocadas en recortes en las figuras abajo (cutouts) o si se apilarán (stacked). Detalles


Enum, predeterminado: none
Value Shape grouping
none Sin agrupar
color Por color, interactúa con output.shape_stacking
parent Por la figura que contiene a las demás
layer Por Capa según el orden de dibujo
Detalles

Booleano, predeterminado: false

Aplanar círculos, elipses, rectángulos, triángulos y estrellas que se hayan identificado en curvas ordinarias. Detalles

Curvas:


Booleano, predeterminado: true

Si permitir las curvas de Bézier cuadráticas. Detalles


Booleano, predeterminado: true

Si permitir las curvas de Bézier cúbicas. Detalles


Booleano, predeterminado: true

Si permitir arcos circulares. Detalles


Booleano, predeterminado: true

Si permitir arcos elípticos. Detalles


Float, 0.001 a 1.0, predeterminado: 0.1

Distancia máxima en píxeles entre una curva y la línea que la aproxima. Detalles

Rellenar espacios:


Booleano, predeterminado: true

Si solucionar los errores que producen líneas blancas comunes en los visores de vectores. Detalles


Booleano, predeterminado: false

Si recortar los trazos para rellenar espacios. Cuando output.shape_stacking=stacked usar recorte o trazos sin ajuste de escala. Detalles


Booleano, predeterminado: true

Si usar trazos para rellenar sin ajuste de escala. Cuando output.shape_stacking=stacked usar recorte o trazos sin ajuste de escala. Detalles


Float, 0.0 a 5.0, predeterminado: 2.0

Ancho de los trazos para rellenar espacios. Detalles

Estilo de delineado cuando output.draw_style es stroke_shapes o stroke_edges


Booleano, predeterminado: true

Si usar delineado no escalable. Detalles


Booleano, predeterminado: false

Si usar un color que invalida o el color estimado de la figura. Detalles


Formato: '#RRGGBB', p. ej. #FF00FF, predeterminado: #000000

El color de reemplazo. Detalles


Float, 0.0 a 5.0, predeterminado: 1.0

Ancho del delineado. Detalles

Tamaño del archivo:


Float, 0.0 a 1000.0

Factor de escala uniforme. Si se especifica, tiene prioridad antes que output.size.width y output.size.height


Float, 0.0 a 1.0E12

Ancho en unidades especificadas por output.size.unit. Si se especifica solamente un ancho y una altura, los otros se calculan automáticamente para preservar la relación de aspecto.


Float, 0.0 a 1.0E12

Altura en unidades especificadas por output.size.unit. Si se especifica solamente un ancho y una altura, los otros se calculan automáticamente para preservar la relación de aspecto.


Enum, predeterminado: none

La unidad de medida para el ancho y la altura. De estos, pt, in, cm y mm son unidades físicas y none y px no son unidades físicas. Estas distinciones interactúan con output.size.input_dpi y output.size.output_dpi.


Enum, predeterminado: preserve_inset

Valor Regla para ajustar a escala
preserve_inset Ajustar a escala de modo uniforme para que quepa en la dimensión más pequeña, de modo que no se pasa de los límites, sino que es espacio vacío en la otra dimensión
preserve_overflow Ajustar a escala de modo uniforme para que quepa en la dimensión menos ajustada, pero se pase de los límites en la dimensión más pequeña
stretch Ajustar a escala no uniforme para que quepa en el ancho y la altura especificados
Para cualquiera de las opciones de preserve, la posición de la dimensión no constreñida sea controlada por output.size.align_x o por output.size.align_y.


Float, 0.0 a 1.0, predeterminado: 0.5

Alineación horizontal para output.size.aspect_ratio = preserve_inset o preserve_overflow.

Valor Alineación horizontal
0.0 Alineada a la izquierda
0.5 Centrada horizontalmente
1.0 Alineada a la derecha
Puede ser un valor entre 0.0 y 1.0.


Float, 0.0 a 1.0, predeterminado: 0.5

Alineación vertical para output.size.aspect_ratio = preserve_inset o preserve_overflow.

Valor Alineación vertical
0.0 Alineada arriba
0.5 Centrada verticalmente
1.0 Centrada abajo
Puede ser un valor entre 0.0 y 1.0.


Float, 1.0 a 1000000.0

Los PPP de la imagen se leen del archivo, cuando están disponibles. Este parámetro permite invalidar ese valor. El valor resultante se usa para calcular el tamaño físico de la imagen original, que se usa para calcular el tamaño del a imagen resultante, si se especifican unidades físicas para la imagen resultante, pero no un ancho o una altura explícitos.


Float, 1.0 a 1000000.0

Los PPP de la imagen resultante. Esto se usa para calcular el tamaño en píxeles de la imagen resultante en mapas de bits cuando se especifican unidades físicas.

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

Images vectorized with policy.retention_days > 0 are stored for the requested time period and deleted automatically shortly thereafter.

Normalmente no es necesario llamar a este punto final. Se proporciona para que pueda eliminar imágenes antes de que expire el período de retención. Si eliminas una imagen antes de tiempo, no recibirás un reembolso por los días de almacenamiento restantes.

Parámetros


An Image Token, returned in the X-Image-Token header in an earlier vectorization API call where policy.retention_days > 0.

Atributos de la respuesta

success

true El token de imagen se ha eliminado de forma afirmativa.

Respuesta del ejemplo

{
  "success" : true
}

Estatus de la cuenta GET
https://api.vectorizer.ai/api/v1/account

Obtenga información básica sobre su cuenta, por ejemplo, el estado de su suscripción y el número de créditos restantes.

Parámetros

Ninguna

Atributos de la respuesta

subscriptionPlan

El plan en el que está inscrito ahora o 'ninguno'.

subscriptionState

El estado de su suscripción actual ('activa' o 'vencida') o 'cancelada' si no está inscrito.

credits

Los créditos de la API restantes en su cuenta. 0 si no está inscrito actualmente o si está inscrito en un plan sin API. Puede ser fraccional, así es que asegúrese de analizarlo como un Double.

Nombre de usuario = Id de la API, contraseña = código secreto

cURL

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

Respuesta del ejemplo

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

Registro de cambios de la API

FechaCambiar
1 oct 2024 Se ha añadido un chatbot de IA para facilitar la integración con la API.
23 sept 2024 Amplió considerablemente la API para permitir más modos de operación. Se agregaron los tokens de imagen, los recibos, los encabezados de cargos por llamada y los puntos finales de descarga y eliminación.
11 jun 2024 Agregamos processing.palette
4 mar 2024 Sección agregada sobre tiempos de espera.
24 ene 2024 Se agregó el punto de conexión al estatus de la cuenta. Se agregaron los errores de la API recientes a la página de la cuenta. Se agregó una lista de todas las respuestas de error de la API.
16 ene 2024 Se documentó el objeto JSON del error.
3 oct 2023 Tome en cuenta que output.gap_filler.enabled=true produce más colores en el resultado que lo solicitado en processing.max_colors.
20 sept 2023 Agregamos mode
1 ago 2023 Agregamos un grupo de opciones de tamaño resultante con las siguientes opciones: 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, output.size.output_dpi. Agregamos un grupo de opciones de resultado en mapa de bits con una opción: output.bitmap.anti_aliasing_mode.
7 jun 2023 Agregamos processing.max_colors
31 may 2023 Ampliamos en gran medida los parámetros de la API. Actualizamos el punto de acceso de la API.
10 mar 2023 Publicación inicial.
Obtener la clave de la API