Favicon:Example:AutoGenerateScript
convert를 사용한 favicon 자동 생성 bash스크립트.
bash script
#!/usr/bin/env bash
FE_DIR=$(cd "$(dirname "${BASH_SOURCE[0]}")"; pwd)
SRC=$FE_DIR/src/assets/answer-logo-notext.svg
PUBLIC_DIR=$FE_DIR/public
ICONS_DIR=$FE_DIR/public/img/icons
DENSITY=100
function exit_if_error
{
local code=$?
if [[ $code -eq 0 ]]; then
echo "OK"
else
echo "Error ($code)"
exit $code
fi
}
function run_convert_png
{
local dest=$1
local size=$2
local input_options=("-density" "$DENSITY" "-background" "none" "-trim")
local output_options=("-gravity" "center" "-resize" "${size}" "-extent" "${size}x${size}" "-format" "png")
echo -n "convert(png) '$dest' ..."
convert ${input_options[@]} "$SRC" ${output_options[@]} "$dest"
exit_if_error
}
function run_convert_ico
{
local dest=$1
local size=$2
local input_options=("-density" "$DENSITY" "-background" "none" "-trim")
local output_options=("-gravity" "center" "-resize" "${size}" "-extent" "${size}x${size}" "-format" "ico")
echo -n "convert(ico) '$dest' ..."
convert ${input_options[@]} "$SRC" ${output_options[@]} "$dest"
exit_if_error
}
function run_copy
{
local dest=$1
echo -n "copy '$dest' ..."
cp "$SRC" "$dest"
exit_if_error
}
run_convert_png "$ICONS_DIR/android-chrome-192x192.png" 192
run_convert_png "$ICONS_DIR/android-chrome-512x512.png" 512
run_convert_png "$ICONS_DIR/android-chrome-maskable-192x192.png" 192
run_convert_png "$ICONS_DIR/android-chrome-maskable-512x512.png" 512
run_convert_png "$ICONS_DIR/apple-touch-icon-120x120.png" 120
run_convert_png "$ICONS_DIR/apple-touch-icon-152x152.png" 152
run_convert_png "$ICONS_DIR/apple-touch-icon-180x180.png" 180
run_convert_png "$ICONS_DIR/apple-touch-icon-60x60.png" 60
run_convert_png "$ICONS_DIR/apple-touch-icon-76x76.png" 76
run_convert_png "$ICONS_DIR/apple-touch-icon.png" 180
run_convert_png "$ICONS_DIR/favicon-16x16.png" 16
run_convert_png "$ICONS_DIR/favicon-32x32.png" 32
run_convert_png "$ICONS_DIR/msapplication-icon-144x144.png" 144
run_convert_png "$ICONS_DIR/mstile-150x150.png" 150
run_convert_ico "$PUBLIC_DIR/favicon.ico" 32
run_copy "$ICONS_DIR/safari-pinned-tab.svg"
See also
Favorite site
- Github - derekmorash/Imagemagick-svg-to-png-favicon
- Gist - azam/svg2ico.sh - Convert SVG to ICO using ImageMagick, with transparent background and multi-size icons