Nie wspomniałeś o tym, jakiego systemu operacyjnego używasz. Używam Ubuntu i udało mi się z powodzeniem korzystać z librsvg2.
Jeśli masz dostęp do Ubuntu, oto co możesz zrobić. Najpierw zainstaluj librsvg2:
sudo apt-get install librsvg2-bin
Następnie cd
przejdź do katalogu zawierającego pliki SVG (upewnij się, że mają tylko pliki SVG!) I użyj polecenia w następujący sposób:
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
Spowoduje to utworzenie nowej partii plików SVG o wymiarach 200 na 200 pikseli i zapisanych jako „original-file-name.new.svg”
Obliczanie wymiarów jest nieco mylące. Aby przekonwertować SVG na SVG, musisz zrobić trochę matematyki. Opcje „wysokość” i „szerokość” w konwersji rsvg używają pt, a nie px, w takich przypadkach, więc użyj 80, jeśli chcesz 100px, 120, jeśli chcesz 150px i tak dalej.
Możesz także użyć rsvg-convert, aby wyprowadzić PNG. O wiele lepiej jest rasteryzować plik niż ImageMagick, przynajmniej z mojego doświadczenia. Zauważ, że musisz zmienić -f
na png
, musisz zmienić wyjściowy wzorzec zapisu z 's/svg$/new.svg/'
na 's/svg$/png/'
, a jako szerokość w pikselach wprowadź żądaną szerokość i wysokość.
for old in *; do
new="$(echo "$old" | sed -e 's/svg$/png/')"
rsvg-convert "$old" -w 200 -h 200 -f png -o "$new"
done