PNG o JPG? La regola che uso da dieci anni per decidere
Dov Azencot
@DovAzencotPNG e JPG sono le due risposte predefinite a «salva questa immagine» da più di vent’anni, e quasi tutti scelgono tra loro per caso — quello che la finestra di esportazione aveva impostato di default. Funziona finché il giorno in cui spedisci a qualcuno uno screenshot da 9 MB, o pubblichi un logo con un brutto alone grigio intorno, e all’improvviso la scelta conta.
Ecco il punto: la decisione è davvero semplice. Si riduce a una domanda che mi faccio da una decina d’anni, e non mi ha mai deluso una volta.
L’unica domanda
Questa immagine è fatta di bordi, o è fatta di luce?
Tutto qui. Testo, loghi, icone, screenshot, diagrammi, disegni al tratto, tutto ciò che ha confini netti e regioni piatte di colore — quelli sono bordi. Fotografie, gradienti, tutto ciò che ha tono continuo e morbido e migliaia di sottili passaggi di colore — quella è luce.
I bordi vogliono il PNG. La luce vuole il JPG. Da lì discende quasi tutto.
Perché i bordi vogliono il PNG
Il PNG è senza perdita. Ogni pixel che salvi torna fuori identico, per sempre, per quante volte tu lo riapra. Comprime trovando sequenze di colore identico, che è esattamente ciò di cui sono pieni gli oggetti basati sui bordi — un pulsante compatto, uno sfondo bianco, una linea nera. Il PNG se li mangia vivi e resta affilato come un rasoio.
Ha anche un canale alfa, quindi può essere davvero trasparente. È per questo che ogni logo che vuoi posare su uno sfondo colorato dovrebbe essere PNG. Il JPG non ha alcuna trasparenza — riempie quelle aree di bianco, ed è da lì che nasce il brutto alone.
Il caso in cui cede sono le fotografie. Salva una foto in PNG e registrerà diligentemente ogni granello di rumore del sensore e ogni micro-gradiente a piena fedeltà, e il file si gonfia. Il PNG non è sprecone perché sia scadente. È sprecone perché è onesto su un dettaglio che il tuo occhio perdonerebbe volentieri.
Perché la luce vuole il JPG
Il JPG è con perdita. Butta via le informazioni che il tuo occhio nota a fatica — variazioni fini di colore, dettaglio ad alta frequenza — e lo fa notevolmente bene sulle fotografie. È esattamente la roba di cui una foto abbonda. Il risultato è un file una frazione delle dimensioni, e non riesci a vedere cosa manca.
Punta però il JPG sui bordi, e va in pezzi. Spalma artefatti sfocati intorno ai confini netti — intorno al testo soprattutto — perché i bordi affilati sono proprio quel dettaglio ad alta frequenza che è progettato per scartare. Uno screenshot JPG di codice sembra leggermente sporco intorno a ogni lettera. Non è il tuo monitor. È il formato che lavora come previsto sull’input sbagliato.
La tabella dei pesi che chiude la questione
Le stesse due immagini di partenza, salvate in entrambi i modi con impostazioni sensate:
| Immagine | Come PNG | Come JPG |
|---|---|---|
| Una fotografia — 12 MP | ~14 MB | ~3 MB |
| Uno screenshot d’interfaccia con testo | ~600 KB | ~900 KB |
| Un logo piatto a due colori | ~20 KB | ~85 KB |
Leggila nei due sensi. La foto è quasi 5 volte più leggera come JPG, senza perdita visibile. Ma lo screenshot e il logo sono più grandi come JPG — e verrebbero anche peggio, con aloni e sfocature. Il formato più leggero si ribalta completamente a seconda di cosa c’è nell’immagine. È tutta qui la lezione, in tre righe.
I casi limite (ne valgono solo due)
La trasparenza impone il PNG. Se una qualsiasi parte dell’immagine deve essere trasparente, il JPG è fuori discussione a prescindere dal contenuto, perché fisicamente non può conservare un canale alfa. Anche una foto scontornata su sfondo trasparente deve essere PNG (o WebP).
Testo sopra foto è una questione di giudizio. Una foto con una didascalia impressa dentro è in parte luce, in parte bordo. Vado di JPG se è per lo più foto e accetto un testo un po’ molle, o di PNG se il testo deve restare nitido e posso permettermi il peso. Non c’è un vincitore netto; scegli quale difetto preferisci avere.
Quando hai già quello sbagliato
Il più delle volte non stai scegliendo in esportazione — sei bloccato con un file che qualcuno ha già salvato male. Un fotografo ti ha passato dei PNG da 14 MB. Un designer ti ha spedito un logo come JPG pieno di aloni. È solo una conversione.
Andare nella direzione intelligente — da PNG a JPG per una foto salvata troppo pesante — è una vittoria netta, e gira proprio qui nel tuo browser, così il file non lascia mai il dispositivo. Andare nell’altro senso — da JPG a PNG — è onesto ma limitato: rende il file senza perdita da qui in avanti, che è quello che vuoi prima di modificarlo, ma non può cancellare gli artefatti che il JPG ha già impresso. Il con perdita è una porta a senso unico. Convertire in PNG non ti riporta indietro; ti impedisce solo di perdere altro.
Fatti l’unica domanda — bordi o luce — e avrai ragione praticamente ogni volta. Io me la faccio ancora a ogni esportazione. Ci vuole mezzo secondo e mi ha salvato da un sacco di aloni grigi.
Articoli correlati
Perché converto i PNG in WebP (e l’unica volta in cui non lo faccio)
Il PNG è un formato splendido in cui lavorare e uno spreco da pubblicare. Ecco cosa ti fa risparmiare davvero il WebP, dove non serve a niente, e l’unica regola che non infrango mai.
Perché le foto dell’iPhone sono in HEIC (e quando conviene farne dei JPG)
L’HEIC è davvero un formato migliore, ma metà del web ancora non riesce ad aprirlo. Ecco perché Apple l’ha scelto, cosa perdi convertendo in JPG e quando non mi ci metto nemmeno.
Come funziona davvero la conversione delle immagini nel browser (e perché l’ho costruita così)
«I tuoi file non lasciano mai il dispositivo» è un’architettura, non uno slogan. Ecco come il WASM fa la conversione dentro il tuo browser, e l’unico vero limite che ha.
Tutti gli articoli