arti-angular-app/deploy-this/convert-img-by-image-magic.sh

43 lines
1.4 KiB
Bash
Executable File

INPUT_DIR="./src/main/resources/static/zaklik-public-images" # Folder z oryginalnymi obrazami
OUTPUT_DIR="./src/main/resources/static/zaklik-public-images-generated" # Główny folder do zapisu obrazów w nowych formatach
# Iteracja po wszystkich plikach w katalogu wejściowym i jego podkatalogach
find "$INPUT_DIR" -type f | while read -r file; do
# Relatywna ścieżka pliku w katalogu wejściowym
relative_path="${file#$INPUT_DIR/}"
# Ścieżka do katalogu docelowego
target_dir="$OUTPUT_DIR/$(dirname "$relative_path")"
# Nazwa pliku bez rozszerzenia
filename=$(basename "$file" | cut -f 1 -d '.')
# Ścieżki docelowych plików w formatach WebP i AVIF
webp_file="$target_dir/$filename.webp"
avif_file="$target_dir/$filename.avif"
# Sprawdzenie, czy oba pliki już istnieją
if [ -f "$webp_file" ] && [ -f "$avif_file" ]; then
echo "Pomijam plik: $file (już skompresowany)"
continue
fi
# Tworzenie podkatalogu w katalogu docelowym
mkdir -p "$target_dir"
# Konwersja do WebP (jeśli plik nie istnieje)
if [ ! -f "$webp_file" ]; then
convert "$file" -quality 80 "$webp_file"
echo "Skompresowano do WebP: $webp_file"
fi
# Konwersja do AVIF (jeśli plik nie istnieje)
if [ ! -f "$avif_file" ]; then
convert "$file" -quality 80 "$avif_file"
echo "Skompresowano do AVIF: $avif_file"
fi
done
echo "Konwersja zakończona."