Вы не упомянули, какую ОС вы используете. Я использую Ubuntu, и я смог успешно использовать librsvg2.
Если у вас есть доступ к Ubuntu, вот что вы можете сделать. Сначала установите librsvg2:
sudo apt-get install librsvg2-bin
Затем cd
перейдите в каталог, в котором есть ваши SVG (убедитесь, что в нем есть только SVG!) И используйте команду, подобную следующей:
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
Это создаст новый пакет SVG с размерами 200 на 200 пикселей и сохранен как «original-file-name.new.svg»
Расчет размеров несколько сбивает с толку. Для преобразования SVG в SVG вам нужно немного по математике. В таких случаях параметры "height" и "width" в rsvg-convert используют pt, а не px, поэтому используйте 80, если вы хотите 100px, 120, если вы хотите 150px, и так далее.
Вы также можете использовать rsvg-convert для вывода PNG. Это намного лучше при растеризации файла, чем ImageMagick, по крайней мере, по моему опыту. Обратите внимание, что вам нужно изменить -f
на png
, вам нужно изменить шаблон сохранения вывода с 's/svg$/new.svg/'
на 's/svg$/png/'
, и вы вводите ширину и высоту, которые вы хотите, в качестве значений пикселей.
for old in *; do
new="$(echo "$old" | sed -e 's/svg$/png/')"
rsvg-convert "$old" -w 200 -h 200 -f png -o "$new"
done