Un SVG tiene estas propiedades, que determinan su tamaño:
width="146.91299pt"
height="78.079002pt"
viewBox="0 0 146.913 78.079"
Me gustaría escalar un SVG dado a un 400pt
by por línea de comando sin romper la relación de aspecto. Esto significa que los tres valores anteriores deben cambiarse correctamente y todos los puntos en el siguiente código svg. No quiero cambiar solo el tamaño del lienzo, sino todo el tamaño de la imagen svg. Y no quiero hacerlo con una GUI / a mano, pero quiero hacerlo con CLI.
¿Cómo puedo escalar automáticamente un SVG por línea de comando a un ancho dado?
Motivo: La vista previa de Wikipedia se ve mal si la imagen es demasiado pequeña. Ver esta imagen como un ejemplo.
Cómo haría esta tarea con Inkscape-GUI
- Shift + Ctrl + M (Transformar)
- Escala (marque "escala proporcionalmente")
- Introducir ancho
- Shift + Ctrl + D (propiedades del documento)
- Ajustar página a selección
Ahora quiero una forma CLI automática para hacer esto.
Por cierto, Inkscape simplemente aplicó
<g transform="matrix(1.6838397,0,0,1.6838397,-3.3543029,-3.3542794)"
id="surface0">
a toda la imagen.
width
, height
y viewBox
los valores a algo parecido width="100%" height="100%" viewBox="0 0 400 212.58569"
.
sed
en la respuesta de @terdon). Un problema con el que se puede encontrar es que los valores deben ser diferentes a cualquier otro archivo .svg con el que desee hacer lo mismo.