2025-02-01 10:18:41 +02:00
|
|
|
#!/usr/bin/env bash
|
|
|
|
|
2025-02-01 10:32:57 +02:00
|
|
|
if ! command -v magick &> /dev/null; then
|
|
|
|
echo "This tool requires ImageMagick to be installed in order to create the icons."
|
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
|
2025-02-01 10:18:41 +02:00
|
|
|
if ! command -v inkscape &> /dev/null; then
|
|
|
|
echo "This tool requires Inkscape to be render sharper SVGs than ImageMagick."
|
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
|
|
|
|
script_dir=$(realpath $(dirname $0))
|
2025-02-01 12:41:43 +02:00
|
|
|
images_dir="$script_dir/../../images"
|
|
|
|
output_dir="$images_dir/app-icons/tray"
|
|
|
|
|
|
|
|
function generateDpiScaledIcons {
|
|
|
|
file=$1
|
2025-02-01 12:53:11 +02:00
|
|
|
suffix=$2
|
|
|
|
name="$(basename $file .svg)$suffix"
|
2025-02-01 12:41:43 +02:00
|
|
|
inkscape -w 16 -h 16 "$file" -o "$output_dir/$name.png"
|
|
|
|
inkscape -w 20 -h 20 "$file" -o "$output_dir/$name@1.25x.png"
|
|
|
|
inkscape -w 24 -h 24 "$file" -o "$output_dir/$name@1.5x.png"
|
|
|
|
inkscape -w 32 -h 32 "$file" -o "$output_dir/$name@2x.png"
|
|
|
|
}
|
|
|
|
|
2025-02-01 12:53:11 +02:00
|
|
|
generateDpiScaledIcons "$images_dir/icon-black.svg" "Template"
|
2025-02-01 12:41:43 +02:00
|
|
|
generateDpiScaledIcons "$images_dir/icon-color.svg"
|
2025-02-01 12:45:32 +02:00
|
|
|
generateDpiScaledIcons "$images_dir/icon-purple.svg"
|
2025-02-01 10:18:41 +02:00
|
|
|
|
|
|
|
for file in *.svg; do
|
2025-02-01 12:57:51 +02:00
|
|
|
name="$(basename $file .svg)Template"
|
|
|
|
generateDpiScaledIcons "$file" "Template"
|
2025-02-01 11:59:42 +02:00
|
|
|
magick "$output_dir/$name.png" -channel RGB -negate "$output_dir/$name-inverted.png"
|
2025-02-01 12:22:13 +02:00
|
|
|
magick "$output_dir/$name@1.25x.png" -channel RGB -negate "$output_dir/$name-inverted@1.25x.png"
|
|
|
|
magick "$output_dir/$name@1.5x.png" -channel RGB -negate "$output_dir/$name-inverted@1.5x.png"
|
2025-02-01 11:59:42 +02:00
|
|
|
magick "$output_dir/$name@2x.png" -channel RGB -negate "$output_dir/$name-inverted@2x.png"
|
2025-02-01 12:41:43 +02:00
|
|
|
done
|
|
|
|
|