¿Cómo puedo simplificar los archivos SVG (todas las rutas dentro de él) usando una herramienta de línea de comandos de Windows? Es importante que sea rápido porque debería usarlo en producción.
Adobe Illustrator tiene un buen simplificador (Objeto->Ruta->Simplificar) pero no se puede usar como CLI. https://github.com/mourner/simplify-js es otra buena herramienta pero no tiene CLI.
Comente debajo de esta pregunta si conoce alguna herramienta que no sea CLI (en cualquier idioma, incluidos C++ y Python) que funcione directamente con archivos SVG.
Puede instalar node.js y usar JavaScript de línea de comando junto con SVG Optimizer (SVGO) para optimizar archivos de gráficos vectoriales SVG.
Scour es una herramienta de Python que elimina datos redundantes y espurios de archivos SVG y luego los optimiza.
Si está en Debian, puede instalarlo escribiendo este comando:
sudo apt install scour
En la mayoría de las plataformas se puede instalar con:
pip install scour
Si sus permisos actuales no son suficientes, puede usar:
pip install --user scour
o
sudo pip install scour
Estándar:
scour -i input.svg -o output.svg
Mejor (para versiones anteriores de Internet Explorer) :
scour -i input.svg -o output.svg --enable-viewboxing
Fregado máximo:
scour -i input.svg -o output.svg --enable-viewboxing --enable-id-stripping \
--enable-comment-stripping --shorten-ids --indent=none
Limpieza máxima y un archivo SVGZ comprimido:
scour -i input.svg -o output.svgz --enable-viewboxing --enable-id-stripping \
--enable-comment-stripping --shorten-ids --indent=none
Tenga en cuenta que Scour es una biblioteca de python que también proporciona una herramienta de línea de comandos mediante la utilización de puntos de entrada, por lo que requerirá un python que funcione (instalación 2.7 o 3.4+); es multiplataforma.
También hay svgcleaner .
En el momento en que publico esto, el último lanzamiento fue en abril de 2018 y el último compromiso (inédito) en noviembre de 2019, por lo que aún se puede considerar en desarrollo activo.
No sé cómo se compara en términos de características con las otras utilidades enumeradas, pero el principal beneficio que veo en esta utilidad es que está escrita en un lenguaje de programación real (Rust) en lugar de un lenguaje de programación como javascript o python.
Una característica que ya sé que no tiene es la capacidad de seleccionar un subconjunto del archivo svg original para exportar.
svgcleaner viene con compilaciones para linux, windows y macos.
Si ya tiene instalado Inkscape, puede usarlo como una utilidad de línea de comandos.
Escriba inkscape --help
para obtener instrucciones.
inkscape contiene el tiempo de ejecución de python y hace uso de scour (mencionado en otra respuesta) para realizar estas operaciones de línea de comandos.
usuario416
Mawg dice que reincorpore a Monica