Add a script to quickly generate branding images

This commit is contained in:
Heyde Moura 2024-01-13 13:43:47 -03:00
parent 04e03a83b4
commit 43e6d8689c

56
scripts/branding-from-svg.sh Executable file
View File

@ -0,0 +1,56 @@
#!/bin/bash
svg_input="$1"
destination_folder="${2:-.}"
if [ -z "$svg_input" ]; then
echo "Usage: $0 <input_svg_file> [destination_folder]"
echo "Converts an SVG input to various image formats and sizes based on a predefined list."
exit 1
fi
if [ ! -d "$destination_folder" ]; then
echo "Destination folder does not exist. Creating: $destination_folder"
mkdir -p "$destination_folder"
fi
entries=(
"android-chrome-192x192.png"
"android-chrome-512x512.png"
"apple-touch-icon.png"
"favicon-16x16.png"
"favicon-32x32.png"
"favicon.ico"
"mstile-144x144.png"
"mstile-150x150.png"
"mstile-310x150.png"
"mstile-310x310.png"
"mstile-70x70.png"
"safari-pinned-tab.svg"
)
for entry in "${entries[@]}"; do
name="${entry%.*}"
extension="${entry##*.}"
output="$destination_folder/${name}_output.${extension}"
# Convert SVG to specified dimensions and format
case "$extension" in
"png")
convert -background none -resize "${name: -4}"x"${name: -4}" "$svg_input" "$output"
;;
"ico")
convert "$svg_input" -bordercolor white -border 0 -alpha off "$output"
;;
"svg")
# SVGs don't need conversion, just copy
cp "$svg_input" "$output"
;;
*)
echo "Unsupported file format: $entry"
continue
;;
esac
echo "Converted $svg_input to $output"
done