Você não mencionou o SO que está executando. Estou usando o Ubuntu e consegui usar o librsvg2 com sucesso.
Se você tem acesso ao Ubuntu, aqui está o que você pode fazer. Primeiro, instale o librsvg2:
sudo apt-get install librsvg2-bin
Em seguida, cd
no diretório que possui seus SVGs (verifique se ele possui apenas SVGs!) E use um comando como o seguinte:
for old in *; do
new="$(echo "$old" | sed -e 's/svg$/new.svg/')"
rsvg-convert "$old" -w 160 -h 160 -f svg -o "$new"
done
Isso criará um novo lote de SVGs com dimensões de 200 a 200 pixels e salvos como "nome-do-arquivo original.new.svg"
Calcular dimensões é um pouco confuso. Para converter SVG para SVG, você precisa fazer um pouco de matemática. As opções "height" e "width" no rsvg-convert usam pt, e não px, nesses casos; portanto, use 80 se desejar 100 px, 120 se quiser 150 px e assim por diante.
Você também pode usar o rsvg-convert para gerar PNGs. É muito melhor rasterizar o arquivo que o ImageMagick, pelo menos na minha experiência. Observe que você precisa alterar -f
para png
, é necessário alterar o padrão de salvamento de saída de 's/svg$/new.svg/'
para 's/svg$/png/'
e insira a largura e a altura que deseja como valores de pixel.
for old in *; do
new="$(echo "$old" | sed -e 's/svg$/png/')"
rsvg-convert "$old" -w 200 -h 200 -f png -o "$new"
done