Select Git revision
build_images.sh
-
Benoît Harrault authoredBenoît Harrault authored
build_images.sh 1.79 KiB
#! /bin/bash
# Check dependencies
command -v inkscape >/dev/null 2>&1 || { echo >&2 "I require inkscape but it's not installed. Aborting."; exit 1; }
command -v scour >/dev/null 2>&1 || { echo >&2 "I require scour but it's not installed. Aborting."; exit 1; }
command -v optipng >/dev/null 2>&1 || { echo >&2 "I require optipng but it's not installed. Aborting."; exit 1; }
command -v convert >/dev/null 2>&1 || { echo >&2 "I require convert (imagemagick) but it's not installed. Aborting."; exit 1; }
CURRENT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)"
BASE_DIR="$(dirname "${CURRENT_DIR}")"
CONVERT_OPTIONS="-alpha off +dither -colors 256 -depth 4"
OPTIPNG_OPTIONS="-preserve -quiet -o7"
# optimize svg
function optimize_svg() {
SOURCE="$1"
cp ${SOURCE} ${SOURCE}.tmp
scour \
--remove-descriptive-elements \
--enable-id-stripping \
--enable-viewboxing \
--enable-comment-stripping \
--nindent=4 \
-i ${SOURCE}.tmp \
-o ${SOURCE}
rm ${SOURCE}.tmp
}
# build image
function build_image() {
SOURCE="$1"
TARGET_PNG="$2"
IMAGE_WIDTH="$3"
IMAGE_HEIGHT="$4"
inkscape \
--export-width=${IMAGE_WIDTH} \
--export-height=${IMAGE_HEIGHT} \
--export-filename=${TARGET_PNG} \
${SOURCE}
}
# optimize image
function optimize_image() {
IMAGE_FILE="$1"
convert "${IMAGE_FILE}" ${CONVERT_OPTIONS} "${IMAGE_FILE}"
optipng ${OPTIPNG_OPTIONS} ${IMAGE_FILE}
}
# build menu image
function build_menu_image() {
IMAGE_NAME="$1"
INPUT_SVG="${CURRENT_DIR}/menu/${IMAGE_NAME}.svg"
OUTPUT_PNG="${BASE_DIR}/assets/menu/${IMAGE_NAME}.png"
optimize_svg "${INPUT_SVG}"
build_image "${INPUT_SVG}" "${OUTPUT_PNG}" 640 640
optimize_image "${OUTPUT_PNG}"
}
build_menu_image "game-pick-image"
build_menu_image "game-pick-word"