Quanti colori può avere una GIF?
Fino a 256 per palette. Ogni pixel memorizza un indice a 8 bit (0–255) che punta a una tabella dei colori, e ogni voce della tabella è un colore RGB a 24 bit. Quindi i 256 colori possono essere 256 qualsiasi tra i 16,7 milioni di colori RGB.
Le dimensioni della palette sono potenze di due: 2, 4, 8, 16, 32, 64, 128 o 256 voci. Una GIF può avere una palette globale per l'intero file e una palette locale per ciascun fotogramma. Con le palette locali, un'animazione può usare colori diversi in fotogrammi diversi, ma un fotogramma normale ne mostra comunque al massimo 256. (Un raro espediente sovrappone più sottoimmagini per fotogramma per mostrarne di più, ma i file diventano enormi e alcune app li visualizzano in modo errato.)
Perché le GIF supportano solo 256 colori
Il formato GIF è stato progettato nel 1987, quando 256 colori erano considerati generosi per i display dei computer. Utilizza colori indicizzati a 8 bit: ogni pixel memorizza un indice (0–255) che fa riferimento a un colore in una tabella di ricerca (la palette). La palette contiene fino a 256 colori, ciascuno definito come una tripletta RGB.
L'intuizione chiave: questi 256 colori possono essere qualsiasi 256 colori dell'intero spazio colore RGB da 16,7 milioni. Una GIF di un tramonto può utilizzare 256 sfumature di arancione, rosso e viola. Una GIF di una foresta può utilizzare 256 sfumature di verde. La sfida è scegliere i 256 colori giusti per il tuo contenuto specifico.
Perché la selezione della palette è importante
Una palette «web-safe» generica utilizza un set fisso di 216 colori distribuiti sullo spettro. Per i contenuti video, questo produce risultati scadenti perché i colori potrebbero non corrispondere affatto al tuo video.
Una palette personalizzata analizza i pixel effettivi del tuo video e seleziona i 256 colori che rappresentano al meglio il contenuto. Il miglioramento è drammatico — i colori appaiono naturali, le sfumature sono più morbide e i dettagli vengono preservati.
Il nostro convertitore utilizza l'approccio a due passaggi di FFmpeg: prima analizza il video per generare una palette ottimale (palettegen), poi applica quella palette per creare la GIF (paletteuse). Questo produce risultati notevolmente migliori rispetto agli strumenti a passaggio singolo.
Metodi di generazione della palette
Modalità full (stats_mode=full)
Analizza tutti i pixel in tutti i fotogrammi per costruire un'unica palette globale. Ideale per video con contenuti diversificati e in evoluzione, come clip di film, sequenze d'azione e videoclip musicali in cui i colori variano tra i fotogrammi.
Modalità diff (stats_mode=diff)
Conta solo i pixel che cambiano tra i fotogrammi. Migliore per video con sfondi statici come registrazioni dello schermo, presentazioni e video tipo talking-head. Produce file più piccoli perché assegna più voci di palette al contenuto che cambia e meno allo sfondo invariato.
Modalità single (stats_mode=single)
Crea una nuova palette per ogni fotogramma. Offre la massima qualità possibile poiché ogni fotogramma riceve una palette ottimizzata, ma produce file più grandi. Ideale per contenuti fotografici in cui la precisione del colore è critica.
Compromessi sul numero di colori
| Colori | Qualità | Risparmio dimensioni | Ideale per |
|---|---|---|---|
| 256 | Migliore possibile | Riferimento | Contenuti fotografici |
| 128 | Differenza appena percepibile | 15–25 % | Punto ideale per la maggior parte dei contenuti |
| 64 | Lieve banding | 30–45 % | Registrazioni dello schermo |
| 32 | Posterizzazione evidente | 45–60 % | Solo grafica semplice |
| 16 | Degrado significativo | 60–75 % | Loghi, pixel art |
Dithering: simulare i colori mancanti
Il dithering utilizza pattern dei colori disponibili per simulare colori non presenti nella palette. È la differenza tra un banding di colore brusco e sfumature dall'aspetto morbido.
- Nessun dithering: mappa ogni pixel al colore della palette più vicino. Il più veloce, file più piccoli, ma mostra banding visibile sulle sfumature. Ideale per contenuti a colori piatti come loghi e pixel art.
- Bayer (ordinato): utilizza un pattern di tratteggio deterministico. Il pattern regolare si comprime bene, rendendolo la scelta migliore quando la dimensione del file è critica. Pattern leggermente visibile a ispezione ravvicinata. Ridurre i colori e alleggerire il dithering sono due dei metodi illustrati in come ridurre la dimensione di un file GIF.
- Floyd-Steinberg (diffusione d'errore): distribuisce l'errore di quantizzazione ai pixel vicini. Produce i risultati dall'aspetto più naturale per contenuti fotografici. File più grandi a causa dei pattern di pixel dall'aspetto casuale.
- Sierra2: diffusione d'errore migliorata con un kernel di distribuzione più ampio. Produce risultati intermedi tra Floyd-Steinberg e Bayer sia in qualità sia in dimensione del file. La nostra raccomandazione predefinita.
Raccomandazioni per tipo di contenuto
| Contenuto | Modalità palette | Colori | Dithering |
|---|---|---|---|
| Registrazione schermo | diff | 128 | Bayer |
| Clip di film | full | 256 | Sierra2 |
| Animazione di logo | full | 64 | Nessuno |
| Fotografia | single | 256 | Floyd-Steinberg |
Alternative moderne con migliore supporto dei colori
Se il limite di 256 colori del GIF è inaccettabile per il tuo contenuto, considera queste alternative:
- Animazione WebP: colore a 24 bit (16,7 M di colori), piena trasparenza alpha, circa il 64 % più piccolo di GIF in modalità lossy (dati di Google). Supportato da oltre il 97 % dei browser.
- APNG: piena qualità PNG con colore a 24 bit e alpha a 8 bit. Stesso supporto browser di WebP. Ideale quando serve trasparenza con colore pieno.
- MP4/WebM: milioni di colori, file molto più piccoli. Usa
<video autoplay loop muted playsinline>sui siti web.
Confronta tutte le opzioni nel nostro confronto dei formati animati.
Perché la mia GIF cambia colore?
- Un'unica palette per tutta la clip. Se una clip passa da un cielo blu a una stanza rossa, una sola palette deve coprire entrambe le scene, quindi ciascuna riceve meno colori esatti.
- La palette cambia tra un fotogramma e l'altro. Con le palette per fotogramma, lo stesso oggetto può essere mappato su colori leggermente diversi in ogni fotogramma, e il risultato sembra uno sfarfallio.
- Il rumore del dithering si sposta. I pattern a diffusione d'errore cambiano da un fotogramma all'altro e tremolano sulle aree uniformi.
- Salvare di nuovo una GIF esistente sceglie una nuova palette a partire da colori già ridotti, quindi ogni salvataggio si allontana ulteriormente dall'originale.
Il convertitore di questa pagina crea un'unica palette per la clip con FFmpeg palettegen=max_colors=256:stats_mode=diff, così i colori restano coerenti tra i fotogrammi e privilegiano le parti in movimento. Applica il dithering Sierra-2 e aggiorna solo i rettangoli modificati (diff_mode=rectangle).