Utils/createicons
2023-10-31 02:30:13 +00:00

46 lines
1.3 KiB
Bash

#!/bin/bash
# Define color variables
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[0;33m'
BLUE='\033[0;34m'
RESET='\033[0m'
# Check for the input SVG file argument
if [ "$#" -ne 3 ]; then
echo -e "${RED}Improper usage!"
echo -e "${GREEN}Usage: ${BLUE}$(basename $0) ${YELLOW}input.svg output_filename new_color${RESET}"
exit 1
fi
input_file="$1"
output_filename="$2"
new_color="$3"
# List of output sizes and directory names
sizes=(16 22 24 32 48 64 96 128)
directories=("16" "22" "24" "32" "48" "64" "96" "128" "scalable")
# Create directories if they don't exist
for dir in "${directories[@]}"; do
mkdir -p "$dir"
done
cp "$input_file" "scalable/${output_filename}.svg"
echo -e "${GREEN}Copied ${YELLOW}$input_file ${GREEN}to ${YELLOW}./scalable/${output_filename}.svg${RESET}"
# Generate PNG files for each size
for ((i=0; i<${#sizes[@]}; i++)); do
size="${sizes[i]}"
dir="${directories[i]}"
output_file="$dir/${output_filename}.png"
# Convert the SVG to PNG at the specified size and set the new fill color
convert -background none -resize "${size}x${size}" -fuzz 10% -fill "$new_color" -opaque "#000000" "$input_file" "$output_file"
echo -e "${GREEN}Generated ${YELLOW}$output_file${RESET}"
done
echo -e "${GREEN}PNG files generated.${RESET}"