47 lines
1.3 KiB
Text
47 lines
1.3 KiB
Text
|
#!/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}"
|
||
|
|