Skip to content

Instantly share code, notes, and snippets.

@pd95
Last active December 28, 2022 20:56
Show Gist options
  • Star 8 You must be signed in to star a gist
  • Fork 2 You must be signed in to fork a gist
  • Save pd95/f8afdeb6139d96019bd60b11a70d6367 to your computer and use it in GitHub Desktop.
Save pd95/f8afdeb6139d96019bd60b11a70d6367 to your computer and use it in GitHub Desktop.
A ZSH command file to produce the various PNG files required for iOS and macOS app Icons using `sips` (scriptable image processing system) available on any macOS. The resulting PNGs in the "AppIcons" folder can then be dragged into Xcode's `Assets.xcassets` onto a placeholder for an AppIcon.
#!/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
@ice-cream-coder
Copy link

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment