#!/bin/zsh function usage() { NAME=$(basename "$0") echo "Usage: ${NAME} " } IN_FILE="$1" OUT_DIR="$2" if [[ ! -r "$IN_FILE" ]]; then echo "Missing source icon, or file not found: $IN_FILE" usage exit 1 fi if [[ ! -d "$OUT_DIR" ]]; then echo "Missing output directory, or directory not found: $OUT_DIR" usage exit 2 fi FILENAME=$(basename "$IN_FILE") echo "* Generating App Store marketing icon at 1024x1024 px" APPSTORE_FILE="${OUT_DIR}/${FILENAME%.png}_marketing_1024.png" echo "> convert '${IN_FILE}' -scale 1024x1024 '${APPSTORE_FILE}'" gm convert "$IN_FILE" -scale 1024x1024 "$APPSTORE_FILE" for SIZE in 20 29 40 60; do PREFIX="${FILENAME%.png}_iPhone_$SIZE" echo "* Generating iPhone icons at $SIZE points with filename prefix $PREFIX" S=$((2 * SIZE)) gm convert "$IN_FILE" -scale ${S}x${S} "$OUT_DIR/$PREFIX@2x.png" S=$((3 * SIZE)) gm convert "$IN_FILE" -scale ${S}x${S} "$OUT_DIR/$PREFIX@3x.png" done for SIZE in 20 29 40 76 83.5; do PREFIX="${FILENAME%.png}_iPad_$SIZE" echo "* Generating iPad icons at $SIZE points with filename prefix $PREFIX" S=$SIZE gm convert "$IN_FILE" -scale ${S}x${S} "$OUT_DIR/$PREFIX.png" S=$((2 * SIZE)) gm convert "$IN_FILE" -scale ${S}x${S} "$OUT_DIR/$PREFIX@2x.png" done for SIZE in 16 32 128 256 512; do PREFIX="${FILENAME%.png}_Mac_$SIZE" echo "* Generating Mac icons at $SIZE points with filename prefix $PREFIX" gm convert "$IN_FILE" -scale ${SIZE}x${SIZE} "$OUT_DIR/$PREFIX.png" S=$((2 * SIZE)) gm convert "$IN_FILE" -scale ${S}x${S} "$OUT_DIR/$PREFIX@2x.png" done