commit d38b9f1ab0cb997ac0a963cfa5b5631590de6ab5 Author: Raine Date: Sun Jun 2 19:02:43 2024 +0200 init diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..974a1b5 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +**/mutations \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..37408df --- /dev/null +++ b/README.md @@ -0,0 +1,23 @@ +# Assets + +## Saluco + +![](./logos/saluco/saluco-white.png) +![](./logos/saluco/saluco-black.png) + +### Derivatives +Created with `./scale ./logos/saluco` + +> If you see nothing here, the derivatives weren't generated. + +![](./logos/saluco/mutations/saluco-white/saluco-white_35.png) +![](./logos/saluco/mutations/saluco-black/saluco-black_35.png) + +![](./logos/saluco/mutations/saluco-white/saluco-white_70.png) +![](./logos/saluco/mutations/saluco-black/saluco-black_70.png) + +![](./logos/saluco/mutations/saluco-white/saluco-white_140.png) +![](./logos/saluco/mutations/saluco-black/saluco-black_140.png) + +![](./logos/saluco/mutations/saluco-white/saluco-white_280.png) +![](./logos/saluco/mutations/saluco-black/saluco-black_280.png) \ No newline at end of file diff --git a/logos/saluco/saluco-black.png b/logos/saluco/saluco-black.png new file mode 100644 index 0000000..1dff05e Binary files /dev/null and b/logos/saluco/saluco-black.png differ diff --git a/logos/saluco/saluco-white.png b/logos/saluco/saluco-white.png new file mode 100644 index 0000000..adf5ae4 Binary files /dev/null and b/logos/saluco/saluco-white.png differ diff --git a/logos/saluco/saluco.xcf b/logos/saluco/saluco.xcf new file mode 100644 index 0000000..43c0274 Binary files /dev/null and b/logos/saluco/saluco.xcf differ diff --git a/scale b/scale new file mode 100755 index 0000000..cdde270 --- /dev/null +++ b/scale @@ -0,0 +1,65 @@ +#!/bin/bash + +# Default heights to scale images to +DEFAULT_HEIGHTS=(35 70 140 280) + +# Function to resize image while maintaining aspect ratio +resize_image() { + local input_file="$1" + local height="$2" + local filename=$(basename "$input_file") + local dirname=$(dirname "$input_file") + local extension="${filename##*.}" + local name="${filename%.*}" + + echo "$dirname" | grep -q "mutations" && return 1 + + # Create the derivatives directory if it doesn't exist + local output_dir="${dirname}/mutations/${name}" + mkdir -p "$output_dir" + + local output_file="${output_dir}/${name}_${height}.${extension}" + + # Check if the output file already exists + if [[ ! -f "$output_file" ]]; then + # Use convert (ImageMagick) to resize the image + convert "$input_file" -resize "x${height}" "$output_file" + echo "Resized $input_file to $output_file" + else + echo "Skipped $input_file, $output_file already exists" + fi +} + +# Function to process directory recursively +process_directory() { + local dir="$1" + local heights=("${!2}") + + find "$dir" -type d -name "*_derivatives" -prune -o -type f \( -iname '*.jpg' -o -iname '*.jpeg' -o -iname '*.png' -o -iname '*.gif' -o -iname '*.bmp' \) -print | while read -r file; do + for height in "${heights[@]}"; do + resize_image "$file" "$height" + done + done +} + +# Main function +main() { + local target_dir="$1" + shift + local heights=("$@") + + if [[ -z "$target_dir" ]]; then + echo "Usage: $0 [heights...]" + exit 1 + fi + + if [[ ${#heights[@]} -eq 0 ]]; then + heights=("${DEFAULT_HEIGHTS[@]}") + fi + + process_directory "$target_dir" heights[@] +} + +# Call the main function with all script arguments +main "$@" +