Script to convert SVG's into (many different res) drawables.
Adapted from 3ee3b4aad8/original/convert.sh
This commit is contained in:
parent
a48deb9160
commit
2645b2bfd4
78
F-Droid/tools/svg-to-drawables.sh
Executable file
78
F-Droid/tools/svg-to-drawables.sh
Executable file
@ -0,0 +1,78 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Originally by https://github.com/vitriolix/storymaker-art/blob/3ee3b4aad8db4fd24290b0173e8129a3d0e5299d/original/convert.sh,
|
||||||
|
# then modified to make it generic and able to be used by any Android project.
|
||||||
|
#
|
||||||
|
# Requires ImageMagick to be installed.
|
||||||
|
# Some builds of ImageMagick on OSX have problems generating the images correctly.
|
||||||
|
#
|
||||||
|
# This script scales and creates images at the correct dpi level for Android.
|
||||||
|
# When creating svg files set the image size to the size that you want your hdpi images to be.
|
||||||
|
|
||||||
|
function usage {
|
||||||
|
echo $1
|
||||||
|
echo ""
|
||||||
|
echo "USAGE: svg-to-drawable.sh svg-image res-directory [manually-scaled-res-directory]"
|
||||||
|
echo " svg-image Path to the .svg image to convert"
|
||||||
|
echo " res-directory Usually \"res\" in your android project"
|
||||||
|
echo " manually-scaled-res-directory Put manually scaled images in this dir, useful for, e.g. differing levels of details"
|
||||||
|
exit
|
||||||
|
}
|
||||||
|
|
||||||
|
SVG_FILE=$1
|
||||||
|
OUTPUT_RES_DIR=$2
|
||||||
|
SCALED_RES_DIR=$3
|
||||||
|
|
||||||
|
RES_NORMAL=drawable
|
||||||
|
RES_XXXHDPI=drawable-xxxhdpi
|
||||||
|
RES_XXHDPI=drawable-xxhdpi
|
||||||
|
RES_XHDPI=drawable-xhdpi
|
||||||
|
RES_HDPI=drawable-hdpi
|
||||||
|
RES_MDPI=drawable-mdpi
|
||||||
|
RES_LDPI=drawable-ldpi
|
||||||
|
|
||||||
|
if (( $# < 2 ))
|
||||||
|
then
|
||||||
|
usage "ERROR: Requires at least svg-image and res-directory to be passed to script"
|
||||||
|
elif [ ! -d $OUTPUT_RES_DIR ]
|
||||||
|
then
|
||||||
|
usage "ERROR: $OUTPUT_RES_DIR is not a directory"
|
||||||
|
fi
|
||||||
|
|
||||||
|
function convert_drawable {
|
||||||
|
DIR=$1
|
||||||
|
FILE_PATH=$2
|
||||||
|
FILE_NAME=`basename $FILE_PATH`
|
||||||
|
SCALE=$3
|
||||||
|
PNG_FILE=${FILE_NAME/.svg}.png
|
||||||
|
DRAWABLE_DIR=$OUTPUT_RES_DIR/$DIR
|
||||||
|
OUTPUT_PATH=$DRAWABLE_DIR/$PNG_FILE
|
||||||
|
|
||||||
|
if [ ! -d $DRAWABLE_DIR ]; then
|
||||||
|
mkdir $DRAWABLE_DIR
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -f $OUTPUT_PATH ]; then
|
||||||
|
rm $OUTPUT_PATH
|
||||||
|
fi
|
||||||
|
|
||||||
|
INFO=""
|
||||||
|
if [ -f $SCALED_RES_DIR/$DIR/$FILE_NAME ]; then
|
||||||
|
INFO=" (Using manually scaled file from $DIR/$FILE_NAME)"
|
||||||
|
convert -background none $SCALED_RES_DIR/$DIR/$FILE $OUTPUT_PATH || exit
|
||||||
|
else
|
||||||
|
INFO=" (Scaled by $SCALE%)"
|
||||||
|
convert -background none $FILE_PATH[$SCALE%] $OUTPUT_PATH || exit
|
||||||
|
fi
|
||||||
|
echo " $OUTPUT_PATH$INFO"
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
echo "Processing $SVG_FILE"
|
||||||
|
convert_drawable $RES_NORMAL $SVG_FILE 100
|
||||||
|
convert_drawable $RES_XXXHDPI $SVG_FILE 150
|
||||||
|
convert_drawable $RES_XXHDPI $SVG_FILE 125
|
||||||
|
convert_drawable $RES_XHDPI $SVG_FILE 100
|
||||||
|
convert_drawable $RES_HDPI $SVG_FILE 75
|
||||||
|
convert_drawable $RES_MDPI $SVG_FILE 50
|
||||||
|
convert_drawable $RES_LDPI $SVG_FILE 37.5
|
Loading…
x
Reference in New Issue
Block a user