Blog · Guide

Un flusso PNG sensato: oxipng, zopfli e palette

PNG è tutt'altro che obsoleto — usato bene, è il miglior formato per la grafica piatta. Ecco come ottenere i file più piccoli senza banding o artefatti di dithering.

palette → oxipng → zopfli

PNG ha la fama di essere "pesante", ma la maggior parte dei PNG gonfi sono semplicemente codificati male. Con un flusso di lavoro chiaro in tre passaggi — quantizzare, ottimizzare, ricomprimere — puoi ridurre di routine un PNG della metà o più, senza perdita, mantenendo bordi nitidi e colore pulito. Ecco l'ordine che conta.

Quando PNG è lo strumento giusto

PNG è pensato per <b>grafica piatta dai bordi netti</b>: loghi, icone, esportazioni UI, diagrammi, screenshot e qualsiasi cosa con trasparenza. È lossless, quindi i bordi restano perfettamente puliti — niente rumore "a zanzara" di JPEG intorno al testo. Per le fotografie è la scelta sbagliata (usa WebP/AVIF/JPEG), ma per la grafica sintetica che riempie le app moderne, niente batte un PNG fatto bene.

Passo 1: quantizza a una palette quando puoi

La maggior parte della grafica UI usa molti meno di 16 milioni di colori. Convertire un PNG truecolor a 24 bit in una <b>palette indicizzata a 8 bit</b> (≤256 colori) è la leva singola più potente — spesso dimezza il file prima di qualsiasi altra ottimizzazione. Il trucco sta nello scegliere bene i colori e trattare i gradienti con attenzione; un buon quantizzatore sceglie una palette ottimale e applica il dithering solo dove serve davvero.

Passo 2: ottimizza i filtri con oxipng

PNG applica un <i>filtro</i> per riga prima della compressione, e la scelta influisce enormemente sulla dimensione. <b>oxipng</b> prova strategie di filtro e ricomprime l'immagine, velocemente e in parallelo, senza alcuna perdita di qualità. È l'impostazione predefinita sicura di ogni giorno: puntalo su una cartella e rende più piccolo ogni PNG. Eseguilo sia su immagini truecolor sia su immagini con palette.

Passo 3: stringi DEFLATE con zopfli

Quando vuoi il minimo assoluto e non ti dispiace aspettare, <b>zopfli</b> è un compressore compatibile con DEFLATE che cerca molto più a fondo uno stream più piccolo. È lento — a volte secondi per immagine — ma produce PNG standard che qualsiasi decoder legge, spesso qualche punto percentuale più piccoli del solo oxipng. Perfetto per asset che pubblichi una volta e servi milioni di volte.

# La pipeline completa, lossless dall'inizio alla fine
imageforge ui.png --palette auto --lossless        # passo 1
imageforge ./icons/*.png --optimize oxipng         # passo 2
imageforge logo.png --optimize zopfli --effort max # passo 3

Evitare banding e artefatti di dithering

I due modi di fallimento dei PNG con palette sono il <b>banding</b> (gradini visibili in un gradiente quando i colori non bastano) e il <b>rumore di dithering</b> (moiré da colori sparsi per simularne di più). La soluzione è il giudizio: mantieni i gradienti in truecolor, quantizza le zone piatte e applica il dithering solo con palette piccole dove l'occhio preferisce il rumore alle bande. Nel dubbio, confronta la versione quantizzata con l'originale prima di pubblicarla.

Passo
Strumento
Perdita
Quantizzazione
Palette / stile pngquant
Opzionale, controllata
Ottimizzazione filtri
oxipng
Nessuna
Ricompressione
zopfli
Nessuna

Dimezza i tuoi PNG, nel modo giusto.

Palette, oxipng e zopfli in un solo passaggio — lossless per impostazione predefinita, sul tuo Mac.

Continua a leggere