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 usar esta API

La API es compatible con muchos diferentes usos. Estos son algunos comunes:

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

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

Vista previa Muéstrele una vista previa a su posible cliente antes de que pague.

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

  1. Use el punto de conexión (endpoint) 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 respuesta 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. resultados 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 la 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 múltiples opciones 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 la 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 latencia.

Precios

AcciónCréditosDescripción
Pruebas0.00

Es gratis integrar con la API y hacer una prueba. No se requiere una suscripción.

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

Puede evaluar 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 paguen.

Las vistas preliminares 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 precios 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. Descargar 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

Devuelto cuando descarga un resultado de producción usando un Token de vista previa de la imagen. Se puede usar para descargar formatos adicionales (p. ej. SVG, PNG, PDF, etc.) del resultado con la tarifa de formato de descarga en lugar de la tarifa de actualizar de vista previa.

X-Credits-Calculated

Devuelto con peticiones de prueba para mostrar lo que hubiera costado si hubiera sido una petición regular.

X-Credits-Charged

Devuelto con todas las peticiones de mostrar el costo incurrido. Siempre es 0 para las peticiones 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.


Se devuelve un Token de Imagen en el encabezado X-Image-Token en una llamada de la API de vectorizar cuando 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 previstos para el uso de desarrolladores en la integración 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.

Incluimos un encabezado X-Credits-Calculated en la respuesta para que sepa con certeza lo que se le hubiera cobrado por las llamadas de producción correspondientes.

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

La cantidad de días que se desea retener la imagen entrante y su resultado. Cuando especifica policy.retention_days > 0, incluimos un encabezado X-Image-Token en la respuesta.

Esto tiene tres usos principales:

  1. Después de hacer una llamada de vista previa de la API, posteriormente puede descargar el resultado producido rápidamente y con descuento.

  2. Después de vectorizar una imagen, puede descargar múltiples formatos de la misma imagen y opciones de procesamiento sin tener que vectorizar todas desde cero. Esto ahorra bastante tanto en créditos como en latencia.

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

El primer día de almacenamiento es gratis, después de eso se aplica un cargo de 0,01 créditos por día.

Consulte también el pumtp de accesp (endopoint) Descargar.


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 de acceso (endpoint) le permite:

  1. Descargar el resultado de la producción completa después de una llamada de vista previa de la API.

    Incluimos un encabezado X-Receipt en la respuesta para que posteriormente pueda descargar la imagen en otros formatos a la tarifa reducida de descarga de formatos.

  2. Descargar la imagen en múltiples formatos y opciones de procesamiento a la tarifa reducida de descarga de formatos y sin tener que vectorizar todas desde cero.

Parámetros


Se devuelve un Token de Imagen en el encabezado X-Image-Token en una llamada de la API de vectorizar cuando policy.retention_days > 0.


Cadena
Opcional

Un recibo, devuelto en el encabezado X-Receipt en una llamada anterior de descarga de la API en la que actualizó de un resultado de vista previa a resultado de producción.

Al enviar un Token de Imagen de vista previa, tiene que incluir el recibo para obtener la 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

Las imágenes vectorizadas con policy.retention_days > 0 se guardan por el tiempo solicitado y se borrarn automáticamente después de ese tiempo.

Normalmente no hay necesidad de llamar este punto de acceso. Se le proporciona para que pueda borrar imágenes antes del vencimiento del tiempo de retención. La elimnación de una imagen antes del vencimienteo del tiempo de retención no produce un reembolso de los días de almacenamiento restantes.

Parámetros


Se devuelve un Token de Imagen en el encabezado X-Image-Token en una llamada de la API de vectorizar cuando policy.retention_days > 0.

Atributos de la respuesta

success

true El Token de Imagen se ha borrado definitivamente.

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 Agregamos un chatbot de AI para ayudar con la integración con la API.
23 sept 2024 Ampliamos considerablemente la API para habilitar más modos de operación. Agregamos Tokens de Imagen, Recibos, encabezados de cargos por llamada y los endpoints Descargar y Borrar.
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