He estado luchando por hacer algo que parecería bastante básico:
En Inkscape, ¿cómo puedo cambiar el tamaño del documento y su contenido (es decir, dibujos) al mismo tiempo?
Un poco de contexto: quiero cambiar el tamaño de un número bastante grande de documentos SVG de The Noun Project (generalmente son documentos de 100x100px) sin tener que cambiar explícitamente el tamaño de los dibujos reales.
NB: ¡Si hay una solución de línea de comando, también puedo trabajar con eso!
Respuestas:
No ha mencionado qué sistema operativo está ejecutando. Estoy usando Ubuntu, y he podido usar librsvg2 con éxito.
Si tiene acceso a Ubuntu, esto es lo que puede hacer. Primero, instala librsvg2:
Luego,
cd
al directorio que tiene sus SVG (¡asegúrese de que solo tenga SVG!) Y use un comando como el siguiente:Esto creará un nuevo lote de SVG con dimensiones de 200 px por 200 px, y se guardará como "original-file-name.new.svg"
Calcular dimensiones es algo confuso. Para convertir SVG a SVG, necesitas hacer un poco de matemática. Las opciones de "altura" y "ancho" en rsvg-convert usan pt, no px, en tales casos, así que usa 80 si quieres 100px, 120 si quieres 150px, y así sucesivamente.
También puede usar rsvg-convert para generar PNG. Es mucho mejor rasterizar el archivo que ImageMagick, al menos en mi experiencia. Tenga en cuenta que necesita cambiar
-f
apng
, necesita cambiar el patrón de guardado de salida de's/svg$/new.svg/'
a's/svg$/png/'
e ingresa el ancho y la altura que desea como valores de píxel.fuente
rsvg-convert
como tal:rsvg-convert noun_project_1576.svg -w 320 -h 160 -f svg -o noun_project_1576-skewed.svg
que tomará un archivo fuente llamado "noun_project_1576" y lo sesgará para que sea 400 px por 200 px y renómbrelo "noun_project_1576-skewed".librsvg
error de texto de flujo ...Actualmente no hay una forma nativa de hacerlo en Inkscape. La única forma es cambiar el tamaño del contenido y el documento por separado.
fuente
Si bien hay algunas maneras de hacerlo, como se señaló aquí , una forma que puede funcionar realmente bien es usar a
viewBox
. Simplemente modifique el contenido de la etiqueta SVG de la siguiente manera:Lo que
viewBox
hace es definir un sistema de coordenadas interno para el documento. Luego puede escalar fácilmente el documento simplemente modificando los atributoswidth
yheight
según sea necesario.Sin embargo, tenga en cuenta que hay algunos inconvenientes. Por un lado, solo hay ciertos contextos en los que esto funciona, específicamente si de alguna manera estás incluyendo directamente el documento SVG en tu página de marcado. Usar una
<img>
etiqueta con esto puede o no producir resultados inesperados. Tendrá que hacer su propia investigación para descubrir la mejor manera de hacerlo.fuente