/
githubmirror
/
nativefier
Обзор
Документация
Войти
/
githubmirror
/
nativefier
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
icon-scripts/convertToIconset
68 строк
2 KB
Ronan Jouchet
Fix icon conversion scripts broken on recent macOS (fix #1277)
23 ноя 2021, 00:18
23 ноя 2021, 00:18
4405b5d
Код
Авторство
О чём код?
#!/usr/bin/env bash ### USAGE # ./convertToIconset <input png> <outp iconset> # Example # ./convertToIconset ~/sample.png ~/Desktop/converted.iconset # exit the shell script on error immediately set -e make_iconset_imagemagick() { local file iconset file="${1}" iconset="${2}" mkdir "$iconset" for size in {16,32,64,128,256,512}; do $CONVERT "${file}" -define png:big-depth=16 -define png:color-type=6 -sample "${size}x${size}" "${iconset}/icon_${size}x${size}.png" $CONVERT "${file}" -define png:big-depth=16 -define png:color-type=6 -sample "$((size * 2))x$((size * 2))" "${iconset}/icon_${size}x${size}@2x.png" done } make_iconset_sips() { local file iconset file="${1}" iconset="${2}" mkdir "$iconset" for size in {16,32,64,128,256,512}; do sips --setProperty format png --resampleHeightWidth "${size}" "${size}" "${file}" --out "${iconset}/icon_${size}x${size}.png" &> /dev/null sips --setProperty format png --resampleHeightWidth "$((size * 2))" "$((size * 2))" "${file}" --out "${iconset}/icon_${size}x${size}@2x.png" &> /dev/null done } # Parameters SOURCE="$1" DEST="$2" # Check source and destination arguments if [ -z "${SOURCE}" ]; then echo >&2 "No source image specified"; exit 1 fi if [ -z "${DEST}" ]; then echo >&2 "No destination specified"; exit 1 fi HAVE_IMAGEMAGICK= HAVE_SIPS= HAVE_GRAPHICSMAGICK= CONVERT= type gm &>/dev/null && gm version | grep GraphicsMagick &>/dev/null && HAVE_GRAPHICSMAGICK=true && CONVERT="gm convert" type convert &>/dev/null && HAVE_IMAGEMAGICK=true && CONVERT="convert" type sips &>/dev/null && HAVE_SIPS=true if [[ -n "$HAVE_IMAGEMAGICK" || -n "$HAVE_GRAPHICSMAGICK" ]]; then PNG_PATH="$(mktemp -d -t nativefier-iconset-XXXXXX)/icon.png" "${BASH_SOURCE%/*}/convertToPng" "${SOURCE}" "${PNG_PATH}" make_iconset_imagemagick "${PNG_PATH}" "${DEST}" elif [[ -n "$HAVE_SIPS" ]]; then make_iconset_sips "${SOURCE}" "${DEST}" else echo >&2 "Cannot find convert or sips executables"; exit 1; fi