fix: loghi insanitylab estratti dal pdf figma al posto dei loghi template

- logo-dark.png (600×108) e logo-light.png (600×342) ora estratti da
  FigmaDoc/Homepage.pdf via pdftoppm 300dpi + ImageMagick, con alpha
- scripts/extract-logos.sh: pipeline riproducibile e idempotente (md5 stabile)
- asset-map.json: rimossa sezione fallbacks ../Dati (fonte errata PROWESS++)
- apply-asset-map.mjs: commento pipeline aggiornato a 4 step

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
2026-07-02 00:25:18 +02:00
parent 810e5d8dcd
commit 4445c422f8
6 changed files with 112 additions and 7 deletions
+56
View File
@@ -189,3 +189,59 @@ Terza esecuzione `apply-asset-map.mjs + optimize-assets.sh`: md5sum su tutti i .
### Esito verifica loghi
`public/img/logo-dark.png` (130×19, 1725 B) e `logo-light.png` (135×19, 1701 B) sono **identici** ai file sorgente in `../Dati/logo-dark.png` e `../Dati/logo-light.png` (stessa dimensione byte-level). Non sono placeholder: sono i loghi reali InsanityLab copiati dalla sezione `fallbacks` di asset-map.json tramite apply-asset-map.mjs. Le dimensioni in pixel ridotte (130×19 px) sono caratteristiche del PNG sorgente in Dati/, non di un errore di pipeline.
---
## Fix round 3
**Data:** 2026-07-02
### Problema chiuso
`public/img/logo-dark.png` e `logo-light.png` contenevano i loghi del template "PROWESS++" copiati da `../Dati/` (sorgente errato). Sostituiti con i loghi reali "insanitylab" estratti vettorialmente dal PDF Figma.
### Metodo
Sorgente: `../FigmaDoc/Homepage.pdf` (1334×10460 pt, 1 pagina).
Render esplorativi a 72150 dpi per individuare le zone logo:
- **Logo dark** (header, fondo bianco): riga nav in alto, x≈25pt, y≈10pt
- **Logo light** (footer, fondo scuro `srgb(58,41,41)`): sezione footer, y≈8490pt
Estrazione finale con `pdftoppm -r 300`, poi ImageMagick:
- Dark: `-fuzz 8% -transparent white -trim -resize 600x -strip`
- Light: `-crop 850x660+130+60` (esclude tagline e colonne destra), `-fuzz 12% -transparent 'srgb(58,41,41)' -trim -resize 600x -strip`
`-strip` su entrambi garantisce idempotenza md5sum tra esecuzioni successive.
### Coordinate pdftoppm a 300 dpi (pixel)
| Logo | -x | -y | -W | -H | crop interno |
|---|---|---|---|---|---|
| dark | 104 | 41 | 895 | 250 | — |
| light | 0 | 35375 | 1800 | 833 | `850x660+130+60` |
### Dimensioni finali
| File | Dimensioni | Tipo |
|---|---|---|
| `public/img/logo-dark.png` | **600×108 px** | TrueColorAlpha (PNG trasparente) |
| `public/img/logo-light.png` | **600×342 px** | TrueColorAlpha (PNG trasparente) |
### Aggiornamenti pipeline
- Creato `scripts/extract-logos.sh` (bash, `set -euo pipefail`, coordinate fisse, idempotente)
- `scripts/asset-map.json`: rimossa sezione `fallbacks` (loghi ora da extract-logos.sh, non da `../Dati`)
- `scripts/apply-asset-map.mjs`: commento pipeline aggiornato a step 4
- Ordine pipeline: `extract-fig-images.sh → apply-asset-map.mjs → optimize-assets.sh → extract-logos.sh`
### Verifica visiva
- `logo-dark.png`: icona onda/battito cardiaco beige + scritta "insanitylab" scura, layout orizzontale, sfondo trasparente. **Nessun residuo PROWESS++.**
- `logo-light.png`: icona onda/battito cardiaco beige sopra, scritta "insanitylab" beige sotto, layout stacked, sfondo trasparente. **Nessun residuo PROWESS++.**
### Idempotenza
```
md5sum run1 = md5sum run2 → IDEMPOTENTE ✓
```