-
-
Save pd95/f8afdeb6139d96019bd60b11a70d6367 to your computer and use it in GitHub Desktop.
#!/bin/zsh | |
# Shell Script to create all relevant icons from an high resolution artwork | |
if [ "x$1" != "x" -a -f "$1" ] ; then | |
INPUT=$1 | |
else | |
INPUT="Artwork.png" | |
fi | |
if [ ! -f "$INPUT" ]; then | |
echo "Input file not specified" | |
exit 1 | |
fi | |
mkdir -p AppIcons | |
while IFS= read -r line ; do | |
FILENAME=${line% *} | |
SIZE=${line#* } | |
if [ "x$FILENAME" != "x" ] ; then | |
COMMAND="sips -s format png \"$INPUT\" --resampleHeightWidth $SIZE $SIZE --out \"AppIcons/$FILENAME\"" | |
echo "$COMMAND" | |
eval "$COMMAND" | |
else | |
echo "" | |
fi | |
done <<EOF | |
AppIcon~iPhone-20@2x.png 40 | |
AppIcon~iPhone-20@3x.png 60 | |
AppIcon~iPhone-29@1x.png 29 | |
AppIcon~iPhone-29@2x.png 58 | |
AppIcon~iPhone-29@3x.png 87 | |
AppIcon~iPhone-40@2x.png 80 | |
AppIcon~iPhone-40@3x.png 120 | |
AppIcon~iPhone-57@1x.png 57 | |
AppIcon~iPhone-57@2x.png 114 | |
AppIcon~iPhone-60@2x.png 120 | |
AppIcon~iPhone-60@3x.png 180 | |
AppIcon~iPad-20@1x.png 20 | |
AppIcon~iPad-20@2x.png 40 | |
AppIcon~iPad-29@1x.png 29 | |
AppIcon~iPad-29@2x.png 58 | |
AppIcon~iPad-40@1x.png 40 | |
AppIcon~iPad-40@2x.png 80 | |
AppIcon~iPad-76@1x.png 76 | |
AppIcon~iPad-76@2x.png 152 | |
AppIcon~iPad-83.5@2x.png 167 | |
AppIcon~iOS-Marketing-1024@1x.png 1024 | |
AppIcon~macOS-16@1x.png 16 | |
AppIcon~macOS-16@2x.png 32 | |
AppIcon~macOS-32@1x.png 32 | |
AppIcon~macOS-32@2x.png 64 | |
AppIcon~macOS-128@1x.png 128 | |
AppIcon~macOS-128@2x.png 256 | |
AppIcon~macOS-256@1x.png 256 | |
AppIcon~macOS-256@2x.png 512 | |
AppIcon~macOS-512@1x.png 512 | |
AppIcon~macOS-512@2x.png 1024 | |
EOF |
Thanks @KevinQuisquater! I've updated my script accordingly, to ensure everybody gets the latest version.
It seems that zsh
does not complain about the unnecessary ;
I had added. The missing icons you've identified are probably due to my focus on iOS 13 and above. Probably older iOS releases/devices expect even more icon variants...
Hi Roy
The result of the script depends on the quality of the input. Either your input image was not square (width = height) or the text was not aligned.
I tried to reproduce the problem myself and got an acceptable quality (see below). None of the icons seems to be misaligned.
I created these icons based on an artwork image with dimensions 1024x1024 and the text properly centered.
Best regards
Philipp
Ah, I thought the pixels where shifting from he resampling algorithm used in your script. I checked my 1024pt icon that I ran the script on and the text is actually off center. Thanks.
Thank you so much! I have been looking for such an easy solution for years.
To save time to complete beginners like me: to run this, open Terminal, type
sh
, drag the .command file into the Terminal (it will paste its path), then drag your .png icon into the Terminal to and tap Enter.The final command will look like this:
sh {PATH-TO-AppIcons.command} {PATH_TO_YOUR_PNG}
Also, in the file itself, I had to delete the
;
at the end of line 16 for the script to run.There are 3 formats that are asked by Xcode for iPhones that are not here, you can add them to the file too:
Here is the final script without the
;
and with all the images formats: