rsvg-convert
do pacote librsvg2-bin
pode redimensionar o svg.
Veja esta resposta para instruções completas.
Um SVG tem essas propriedades, que determinam seu tamanho:
width="146.91299pt"
height="78.079002pt"
viewBox="0 0 146.913 78.079"
Eu gostaria de escalar um dado SVG para um com 400pt
pela linha de comando sem quebrar a proporção. Isto significa que os três valores acima têm que ser alterados corretamente e todos os pontos no seguinte código svg. Eu não quero alterar apenas o tamanho da tela, mas todo o tamanho da imagem svg. E eu não quero fazer isso com uma GUI / manualmente, mas eu quero fazer isso com o CLI.
Como posso dimensionar automaticamente um SVG por linha de comando para uma determinada largura de banda?
Razão: A visualização da Wikipedia parece ruim se a imagem é muito pequena. Veja esta imagem como um exemplo.
Como eu faria essa tarefa com o Inkscape-GUI
Agora eu quero um modo CLI automático para fazer isso.
A propósito, o inkscape simplesmente aplicou
<g transform="matrix(1.6838397,0,0,1.6838397,-3.3543029,-3.3542794)"
id="surface0">
para toda a imagem.
rsvg-convert
do pacote librsvg2-bin
pode redimensionar o svg.
Veja esta resposta para instruções completas.
Se você quiser apenas alterar uma imagem, abra-a em um editor de texto (por exemplo, emacs) e altere a entrada de largura.
Para um geekier, somente abordagem CLI, use sed:
$ sed 's/width=\"146.91299pt\"/width=\"400pt\"/' orig.svg > new.svg
Isso não escalará a imagem, apenas defina sua largura.
Uma maneira melhor, talvez, mas certamente uma que pode ser executada em lote para várias imagens, é usar o inkscape a partir da linha de comando:
$ inkscape -z -e out.png -w 400 -h 400 in.svg
Para muitos arquivos (supondo que você queira que todos tenham a mesma largura), faça o seguinte. Requer conversão para png e assume que não há espaços em seus nomes de arquivos:
$ for n in $(ls *svg | sed 's/.svg//'); do inkscape -z -e $n.png -w 400 -h 400 $n.svg; done
O convert do ImageMagick foi a minha primeira escolha, mas parece quebrar ao escalar svgs.
Tags command-line svg inkscape