#!/usr/bin/env bash # Passo 3 della pipeline asset (dopo apply-asset-map.mjs). # Converte PNG fotografici in src/assets/img/ → JPG q83 e ridimensiona a ≤1400x1600px. # I PNG partner-* (loghi con trasparenza) restano PNG. # Tutti i JPG esistenti vengono ri-codificati a q83 con vincolo 1400x1600> # (larghezza ≤1400 px E altezza ≤1600 px, aspect ratio preservato). # Idempotente se abbinato a apply-asset-map.mjs (che ripristina i sorgenti originali). set -euo pipefail SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" ROOT="$(cd "$SCRIPT_DIR/.." && pwd)" IMG_DIR="$ROOT/src/assets/img" cd "$IMG_DIR" # --- PNG fotografici → JPG q83 + resize ≤1400x1600 --- shopt -s nullglob declare -A just_converted converted=0 for png in *.png; do [[ "$png" == partner-* ]] && continue jpg="${png%.png}.jpg" convert "$png" -quality 83 -resize '1400x1600>' "$jpg" rm "$png" echo " PNG→JPG: $png → $jpg" just_converted["$jpg"]=1 (( converted++ )) || true done # --- Ri-codifica JPG esistenti a q83 + vincolo 1400x1600 --- # Skip file appena convertiti (già a q83), elabora tutti gli altri. reencoded=0 for jpg in *.jpg; do [[ -n "${just_converted[$jpg]+x}" ]] && continue mogrify -quality 83 -resize '1400x1600>' "$jpg" echo " Ricodificato: $jpg" (( reencoded++ )) || true done echo "Ottimizzazione completata: ${converted} PNG→JPG, ${reencoded} JPG ricodificati (q83, ≤1400x1600)."