Ви не згадали, яка ОС працює. Я використовую 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 з розмірами 200px на 200px і збережеться як "original-file-name.new.svg"
Обчислення розмірів дещо заплутано. Для перетворення SVG в SVG вам потрібно зробити трохи математики. Параметри "висота" та "ширина" в rsvg-конвертації використовують pt, а не px, в таких випадках використовуйте 80, якщо ви хочете 100px, 120, якщо ви хочете 150px тощо.
Ви також можете використовувати rsvg-конвертувати для виведення 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