Files
InsanityLab-web/scripts/optimize-assets.sh
T
2026-07-02 00:06:54 +02:00

38 lines
1.1 KiB
Bash
Executable File

#!/usr/bin/env bash
# Passo 3 della pipeline asset (dopo apply-asset-map.mjs).
# Converte PNG fotografici in src/assets/img/ → JPG q85 e ridimensiona a ≤1400px larghezza.
# I PNG partner-* (loghi con trasparenza) restano PNG.
# Idempotente: se il .png non esiste (già convertito), salta.
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 q85 + resize ≤1400px ---
shopt -s nullglob
converted=0
for png in *.png; do
[[ "$png" == partner-* ]] && continue
jpg="${png%.png}.jpg"
convert "$png" -quality 85 -resize '1400x>' "$jpg"
rm "$png"
echo " PNG→JPG: $png$jpg"
(( converted++ )) || true
done
# --- Resize JPG già esistenti se >1400px ---
resized=0
for jpg in *.jpg; do
w=$(identify -format '%w' "$jpg")
if (( w > 1400 )); then
mogrify -resize '1400x>' "$jpg"
echo " Resize: $jpg (era ${w}px → ≤1400px)"
(( resized++ )) || true
fi
done
echo "Ottimizzazione completata: ${converted} PNG→JPG, ${resized} JPG ridimensionati."