2014-07-17 03:01:12 +00:00
# Copyright (C) 2014 Sergio Benjamim
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software Foundation,
# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
# Very simple bash script to convert svg to png files, you can choose inkscape or imagemagick ('convert' command) and the path to icons export.
2016-10-14 20:36:23 +00:00
# Only converts icons/icon-512.svg
2014-07-17 03:01:12 +00:00
# Needs improvement, yeah, i know, it is not so good... at least it work :)
#!/bin/bash
# Parameters:
# -s, --software inkscape | imagemagick --> "./convert-to-png.sh -s imagemagick" for example
# -d, --directory directory path --> "./convert-to-png.sh -d /usr/share/icons/hicolor/" or "./convert-to-png.sh -d ../../debian/ppsspp/usr/share/icons/hicolor/" for example
# Default options
software_option = "inkscape" # sometimes imagemagick does not convert very well, so inkscape is default
2016-10-14 20:36:23 +00:00
path = "icons" # i.e. icons/icons/
2014-07-17 03:01:12 +00:00
echo -e
while [ " $1 " != "" ] ; do
case $1 in
-s | --software ) shift
if [ " $1 " = = "inkscape" ] || [ " $1 " = = "imagemagick" ] ; then
software_option = $1
echo -e " Using $1 .\n "
else
software_option = "inkscape"
echo -e "This parameter does not exist, inkscape or imagemagick are valids parameters. Using Inkscape.\n"
fi
; ;
-d | --directory ) shift
path = $1
path = ${ path % "/" }
; ;
* ) echo -e "Error with parameters.\n"
exit 1
; ;
esac
shift
done
2016-10-14 20:36:23 +00:00
# Creating icons/icons/ if user does not choose any directory
2014-07-17 03:01:12 +00:00
if [ " $path " = = "icons" ] && [ ! -d " $path " ] ; then
mkdir icons/
fi
# Converting svg icons to png:
# 16 pixel icon use other icon, resize does not fit well for small icons
if [ " $software_option " = = "inkscape" ] ; then
if [ " $path " = = "icons" ] ; then
inkscape --export-area-page --file= icon-16.svg --export-png= $path /ppsspp_16.png
else
inkscape --export-area-page --file= icon-16.svg --export-png= $path /16x16/apps/ppsspp.png
fi
elif [ " $software_option " = = "imagemagick" ] ; then
if [ " $path " = = "icons" ] ; then
convert icon-16.svg -transparent white $path /ppsspp_16.png
else
convert icon-16.svg -transparent white $path /16x16/apps/ppsspp.png
fi
fi
x = "x"
for size in 24 32 48 64 96 128 256 512
do
if [ " $software_option " = = "inkscape" ] ; then
if [ " $path " = = "icons" ] ; then
inkscape --export-area-page --export-width= $size --export-height= $size --file= icon-512.svg --export-png= $path /ppsspp_$size .png
else
inkscape --export-area-page --export-width= $size --export-height= $size --file= icon-512.svg --export-png= $path /$size $x $size /apps/ppsspp.png
fi
elif [ " $software_option " = = "imagemagick" ] ; then
if [ " $path " = = "icons" ] ; then
convert icon-512.svg -resize $size -transparent white $path /ppsspp_$size .png
else
convert icon-512.svg -resize $size -transparent white $path /$size $x $size /apps/ppsspp.png
fi
fi
done
echo -e " \nIcons was exported to $path / folder.\n "
exit 0