Scegliere fra PNG, JPEG, WebP e AVIF
Le fotografie vanno in JPEG, WebP o AVIF. Screenshot, loghi, icone, diagrammi e qualsiasi cosa con colori piatti o testo nitido vanno in PNG, oppure nella modalità senza perdita di WebP. Se ti serve la trasparenza, questo esclude del tutto il JPEG. Se oggi stai scegliendo un formato per il web e puoi servirne più di uno, prima AVIF, WebP come ripiego e il JPEG o il PNG originale per tutto ciò che è molto vecchio.
La decisione è tutta qui. Il resto spiega il perché, così puoi capire quando la regola pratica non vale.
In che cosa è davvero bravo ciascun formato
| Formato | Compressione | Trasparenza | Animazione | Ideale per | Pessimo per |
|---|---|---|---|---|---|
| PNG | Senza perdita | Sì, alfa completo | No | Screenshot, loghi, icone, disegni al tratto, qualsiasi cosa con del testo | Le fotografie, dove i file diventano enormi |
| JPEG | Solo con perdita | No | No | Le fotografie, quando conta il supporto universale | Bordi netti, colori piatti, testo, qualsiasi cosa che modificherai di nuovo |
| WebP | Con o senza perdita | Sì, in entrambe le modalità | Sì | Un sostituto generale sia di PNG sia di JPEG sul web | Software più vecchio del 2020 circa |
| AVIF | Con o senza perdita | Sì | Sì | I file più piccoli per le fotografie, gamma cromatica ampia e alta gamma dinamica | La codifica rapida, e il software più vecchio che non riesce ad aprirlo |
Senza perdita significa che l'immagine decodificata è identica bit per bit a quella entrata. Con perdita significa che l'encoder butta via informazione in modo permanente in cambio di un file più piccolo, e quello che riottieni è un'approssimazione.
PNG è senza perdita e lo sarà sempre. La sua compressione funziona prevedendo ogni pixel dai suoi vicini e comprimendo poi le differenze, il che è brillante quando ampie aree sono identiche o si ripetono, e scarso quando ogni pixel differisce di poco, come in una fotografia. Una foto salvata in PNG è spesso da cinque a dieci volte più grande di un buon JPEG della stessa immagine, senza alcun beneficio visibile.
JPEG è con perdita e non ha un canale alfa, quindi non può memorizzare alcuna trasparenza. Divide l'immagine in blocchi, converte ciascuno in informazione di frequenza e scarta il dettaglio fine a cui il tuo occhio è meno sensibile. La cosa funziona benissimo sulle fotografie a tono continuo e male sui bordi netti, dove produce quei deboli aloni e quel rumore a zanzara che vedi attorno al testo salvato in JPEG.
WebP e AVIF sono entrambi formati contenitore moderni derivati da codec video. Entrambi lavorano con e senza perdita, entrambi supportano la trasparenza alfa completa, ed entrambi sono supportati da tutti i browser diffusi attuali. In generale AVIF comprime più di WebP, soprattutto alle impostazioni di qualità basse, e gestisce gamut cromatici ampi e profondità di bit maggiori. In cambio chiede tempo di codifica, che può essere sensibilmente più lento, e un supporto un po' più stretto fuori dai browser, nelle applicazioni desktop e negli strumenti per immagini più vecchi.
Trasparenza
Solo PNG, WebP e AVIF possono memorizzare un vero canale alfa, cioè ogni pixel porta con sé il proprio valore di opacità. È questo che permette a un logo di appoggiarsi in modo pulito su qualsiasi colore di sfondo.
Se converti in JPEG un'immagine trasparente, la trasparenza deve finire da qualche parte. La maggior parte degli strumenti la appiattisce sul bianco, alcuni sul nero, e scoprirai quale solo quando l'immagine comparirà su uno sfondo colorato con un riquadro bianco attorno. Se conosci il colore di sfondo finale, appiattisci deliberatamente su quel colore invece di lasciare che sia il convertitore a indovinare.
Quando la compressione con perdita va bene, e quando no
La compressione con perdita va bene per la consegna finale di contenuti fotografici alla dimensione con cui verranno effettivamente mostrati. Con impostazioni di qualità ragionevoli la perdita è davvero difficile da vedere.
È invece una cattiva idea quando:
- L'immagine contiene testo, linee sottili o ampie aree di colore piatto. Gli artefatti di compressione si addensano proprio sui bordi netti.
- Il file è un master di lavoro che modificherai e riesporterai in seguito.
- L'immagine verrà ingrandita, oppure sottoposta a una pesante correzione colore, il che amplifica tutto ciò che ha fatto l'encoder.
- I valori esatti dei pixel contano, come nel lavoro scientifico, medico o forense, o in uno screenshot da cui qualcuno leggerà dei numeri.
Perché risalvare un JPEG continua a peggiorarlo
Ogni volta che un JPEG viene decodificato e salvato di nuovo, l'encoder quantizza dati che sono già stati quantizzati, e l'errore di arrotondamento si accumula. Non è che la qualità venga ridotta due volte a partire dall'originale; è che gli artefatti introdotti dal primo passaggio vengono ora trattati come dettaglio reale dell'immagine e a loro volta approssimati.
Salvare con un'impostazione di qualità più alta non annulla il danno. Il dettaglio rimosso al primo salvataggio è perso. Ricodificare a qualità 95 partendo da un file a qualità 60 produce solo un file più grande che conserva fedelmente gli artefatti della qualità 60. Se modifichi un'immagine più volte, tieni il master in un formato senza perdita ed esporta un JPEG, un WebP o un AVIF alla fine.
Che dimensioni aspettarsi, a grandi linee
Queste sono regole pratiche, non misure, e i numeri reali variano moltissimo a seconda del contenuto dell'immagine. Per una fotografia tipica a parità di qualità percepita, aspettati che il JPEG sia il riferimento, che il WebP si collochi intorno a un quarto più in basso e che l'AVIF scenda ancora, con la distanza che si allarga quanto più comprimi. Per la grafica piatta, il WebP senza perdita di solito batte il PNG, a volte in modo netto. Il rumore e la texture fine gonfiano ogni formato con perdita, quindi una foto granulosa non si comprimerà mai come uno scatto pulito da studio.
Ridimensiona prima di comprimere
Il guadagno più grande non è quasi mai il formato. Sono le dimensioni. Un'immagine servita a 4000 pixel di larghezza e mostrata in una colonna da 800 pixel porta con sé circa venticinque volte più dati di pixel del necessario, e nessun encoder può rimediare. Ridimensiona all'incirca alla dimensione con cui verrà mostrata (il doppio, se punti agli schermi ad alta densità), poi scegli il formato, poi regola l'impostazione di qualità finché non riesci appena a vedere la differenza e torna indietro di una tacca.