У меня есть около 434 значков .svg, которые я хотел бы подготовить для использования в приложениях для Android. Поскольку, вероятно, было бы безумием экспортировать их все вручную с помощью Inkspace, я пытаюсь найти способ экспортировать их с помощью ImageMagick и подобных. Я попытался придумать сценарий для этого:
#!/bin/sh
echo "Deleting directories"
rm -rf ../mdpi ../hdpi ../xhdpi ../xxhdpi ../xxxhdpi
echo "Creating directories"
for d in ./*; do
mkdir -p ../mdpi/$d ../hdpi/$d ../xhdpi/$d ../xxhdpi/$d ../xxxhdpi/$d
done;
for f in ./*/*.svg; do
filename=`dirname $f`/`basename $f .svg`.png
echo "Converting $f to $filename"
convert -background transparent $f -resize 24x24 ../mdpi/$filename # 2>/dev/null
convert -background transparent $f -resize 36x36 ../hdpi/$filename # 2>/dev/null
convert -background transparent $f -resize 48x48 ../xhdpi/$filename # 2>/dev/null
convert -background transparent $f -resize 72x72 ../xxhdpi/$filename # 2>/dev/null
convert -background transparent $f -resize 96x96 ../xxxhdpi/$filename # 2>/dev/null
echo 'Done'
done;
Он конвертирует их, но результаты выглядят ужасно. Четкие линии SVG размыты из-за сглаживания, поскольку ImageMagick, кажется, обрабатывает SVG как любое другое изображение. Кроме того, все размеры неверны, так как почти ни один из результирующих файлов не является квадратным.
Мне нужен какой-то способ конвертировать SVG с такими условиями:
- Без сглаживания
- Создайте квадратное изображение с рисунком SVG в центре.
- Разрешить перекрашивать полностью черное изображение SVG (необязательно)
- Использование командной строки Linux (Arch Linux)
Для полной истории: я пытаюсь получить значки для Material Design от Polymer, чтобы их можно было использовать в приложении.