Skip to content

Instantly share code, notes, and snippets.

@DerekK19
Created April 21, 2015 10:06
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save DerekK19/f76041aa22cc253bd954 to your computer and use it in GitHub Desktop.
Save DerekK19/f76041aa22cc253bd954 to your computer and use it in GitHub Desktop.
Convert an image (typically 512x512) to sizes appropriate for iOS apps
#!/bin/bash
# Generate 3 images from the specified one
# takes two parameters"
# The image to be resized
# The new image base name
# The base image size
# Generates:
# A new image at the base size, this will be named <new image base name>.png
# A new image at 2x the base size, this will be named <new image base name>@2x.png
# A new image at 3x the base size, this will be named <new image base name>@3x.png
image=$1
size=$2
base=$3
if [ ${size} == 'app' ]; then
sizes=(29 58 87 40 80 120 76 152 228 60 120 180)
sips -z ${sizes[0]} ${sizes[0]} $image --out ${base}-${sizes[0]}.png &>/dev/null
sips -z ${sizes[1]} ${sizes[1]} $image --out ${base}-${sizes[0]}@2x.png &>/dev/null
sips -z ${sizes[2]} ${sizes[2]} $image --out ${base}-${sizes[0]}@3x.png &>/dev/null
sips -z ${sizes[3]} ${sizes[3]} $image --out ${base}-${sizes[3]}.png &>/dev/null
sips -z ${sizes[4]} ${sizes[4]} $image --out ${base}-${sizes[3]}@2x.png &>/dev/null
sips -z ${sizes[5]} ${sizes[5]} $image --out ${base}-${sizes[3]}@3x.png &>/dev/null
sips -z ${sizes[6]} ${sizes[6]} $image --out ${base}-${sizes[6]}.png &>/dev/null
sips -z ${sizes[7]} ${sizes[7]} $image --out ${base}-${sizes[6]}@2x.png &>/dev/null
# sips -z ${sizes[8]} ${sizes[8]} $image --out ${base}-${sizes[6]}@3x.png &>/dev/null
# sips -z ${sizes[9]} ${sizes[9]} $image --out ${base}-${sizes[9]}.png &>/dev/null
sips -z ${sizes[10]} ${sizes[10]} $image --out ${base}-${sizes[9]}@2x.png &>/dev/null
sips -z ${sizes[11]} ${sizes[11]} $image --out ${base}-${sizes[9]}@3x.png &>/dev/null
elif [ ${size} == 'watch' ]; then
sizes=(29 58 24 48 44 88 86 172 98 196 27 55 )
sips -z ${sizes[0]} ${sizes[0]} $image --out ${base}-${sizes[0]}.png &>/dev/null
sips -z ${sizes[1]} ${sizes[1]} $image --out ${base}-${sizes[0]}@2x.png &>/dev/null
sips -z ${sizes[3]} ${sizes[3]} $image --out ${base}-${sizes[2]}.png &>/dev/null
sips -z ${sizes[5]} ${sizes[5]} $image --out ${base}-${sizes[4]}.png &>/dev/null
sips -z ${sizes[7]} ${sizes[7]} $image --out ${base}-${sizes[6]}.png &>/dev/null
sips -z ${sizes[9]} ${sizes[9]} $image --out ${base}-${sizes[8]}.png &>/dev/null
sips -z ${sizes[11]} ${sizes[11]} $image --out ${base}-${sizes[10]}.png &>/dev/null
elif [ ${size} == 'mac' ]; then
sizes=(16 32 32 64 128 256 256 512)
sips -z ${sizes[0]} ${sizes[0]} $image --out ${base}-${sizes[0]}.png &>/dev/null
sips -z ${sizes[1]} ${sizes[1]} $image --out ${base}-${sizes[0]}@2x.png &>/dev/null
sips -z ${sizes[2]} ${sizes[2]} $image --out ${base}-${sizes[2]}.png &>/dev/null
sips -z ${sizes[3]} ${sizes[3]} $image --out ${base}-${sizes[2]}@2x.png &>/dev/null
sips -z ${sizes[4]} ${sizes[4]} $image --out ${base}-${sizes[4]}.png &>/dev/null
sips -z ${sizes[5]} ${sizes[5]} $image --out ${base}-${sizes[4]}@2x.png &>/dev/null
sips -z ${sizes[6]} ${sizes[6]} $image --out ${base}-${sizes[6]}.png &>/dev/null
sips -z ${sizes[7]} ${sizes[7]} $image --out ${base}-${sizes[6]}@2x.png &>/dev/null
else
sizes=(${size} $[size + size] $[size + size + size])
sips -z ${sizes[0]} ${sizes[0]} $image --out ${base}.png &>/dev/null
sips -z ${sizes[1]} ${sizes[1]} $image --out ${base}@2x.png &>/dev/null
sips -z ${sizes[2]} ${sizes[2]} $image --out ${base}@3x.png &>/dev/null
fi
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment