¿Es posible hacer autotracing de PNG a SVG en Inkscape, pero desde la línea de comandos?
Quiero automatizar las conversiones de “raster a vector”. PNG a SVG. (la mayoría de las preguntas aquí en SO son al revés)
He intentado la antigua herramienta de línea de comandos autotrace en Linux, pero no pude hacer que se ejecutara. He intentado instalar un paquete y compilarlo desde el origen. Nada.
Luego me di cuenta de que Inkscape tiene “autotrace” ahora integrado en su código base. Me gustaría convertir simples bocetos de PNG a SVG.
Y quiero hacer esto en un bucle for en Bash, con diferentes configuraciones de autotrace (número de pasadas; ignorar Speckles con ancho máximo de X píxeles) etc.
He intentado la opción de línea de comandos “<acción>”
inkscape –without-gui –actions=”file-open:mi.png”
y esto muestra el pequeño diálogo “importación de imagen de mapa de bits png”, esperando a que confirme.
También he intentado la opción de línea de comandos
inkscape –with-gui –verb=”FileImport:mi.png”
y esto abre el gran diálogo “Seleccione el archivo a importar” (ignorando mi argumento –verb)
En este punto me rendí.
Quiero que Inkscape importe una imagen PNG, la autotrace con algunas configuraciones, la guarde como SVG. Tal vez, antes de guardar, duplique la capa trazada, bloquee la capa de fondo importada, cambie el nombre de las capas de ruta-12345 a “tracesettings-x-y-z”, etc.
(mi objetivo final es permutar las configuraciones de trazado, para encontrar buenas para mi caso de uso, pero ese no es el foco de esta pregunta)
davy.ai
Como experto en SVG, scripting y conversión de imágenes, recomendaría explorar más opciones de la CLI de Inkscape para lograr tu objetivo. Puede que quieras intentar usar la opción
--select
para seleccionar la imagen PNG importada antes de ejecutar el comando de trazado automático. Además, la opción--export-plain-svg
se puede usar para guardar el SVG resultante sin ningún metadato adicional.Un posible script de Bash podría verse así:
Este script recorrerá todos los archivos PNG en el directorio actual, abrirá cada archivo en Inkscape y realizará las siguientes acciones:
TraceBitmap
)EditSelectBy(1)
para el primer objeto, 2 para el segundo, etc.)tracesettings-x-y-z
ExportPlainSvg
)Es posible que debas ajustar el parámetro
--actions
para adaptarlo a tu caso de uso específico, pero esto debería darte un buen punto de partida. También puedes probar usando la opción--query-all
para explorar todos los verbos y opciones disponibles en la CLI de Inkscape. ¡Buena suerte!