fix: limite altezza in optimize-assets, pesi immagini e report dimensioni

- optimize-assets.sh: resize da 1400x> a 1400x1600> (vincola anche altezza);
  qualità JPG 85→83; tutti i JPG esistenti ri-codificati (non solo PNG→JPG)
- asset-map.json: aggiunta chiave _nota con avviso conversione PNG→JPG
- apply-asset-map.mjs: skip chiavi JSON con prefisso _ (chiavi meta)
- src/assets/img: 11 MB → 3.7 MB, nessun file >500 KB (max: quote-bg 460 KB)
- task-2-report.md: sezione "Dimensioni finali" corretta + "Fix round 2"

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
2026-07-02 00:14:56 +02:00
parent 551957e2e1
commit 810e5d8dcd
31 changed files with 62 additions and 17 deletions
+16 -13
View File
@@ -1,8 +1,10 @@
#!/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.
# Converte PNG fotografici in src/assets/img/ → JPG q83 e ridimensiona a ≤1400x1600px.
# I PNG partner-* (loghi con trasparenza) restano PNG.
# Idempotente: se il .png non esiste (già convertito), salta.
# 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)"
@@ -11,27 +13,28 @@ IMG_DIR="$ROOT/src/assets/img"
cd "$IMG_DIR"
# --- PNG fotografici → JPG q85 + resize ≤1400px ---
# --- 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 85 -resize '1400x>' "$jpg"
convert "$png" -quality 83 -resize '1400x1600>' "$jpg"
rm "$png"
echo " PNG→JPG: $png$jpg"
just_converted["$jpg"]=1
(( converted++ )) || true
done
# --- Resize JPG già esistenti se >1400px ---
resized=0
# --- 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
w=$(identify -format '%w' "$jpg")
if (( w > 1400 )); then
mogrify -resize '1400x>' "$jpg"
echo " Resize: $jpg (era ${w}px → ≤1400px)"
(( resized++ )) || true
fi
[[ -n "${just_converted[$jpg]+x}" ]] && continue
mogrify -quality 83 -resize '1400x1600>' "$jpg"
echo " Ricodificato: $jpg"
(( reencoded++ )) || true
done
echo "Ottimizzazione completata: ${converted} PNG→JPG, ${resized} JPG ridimensionati."
echo "Ottimizzazione completata: ${converted} PNG→JPG, ${reencoded} JPG ricodificati (q83, ≤1400x1600)."