Il problema: perché i colori sembrano sbagliati
Scatti una foto con il tuo iPhone. Sullo schermo sembra perfetta — rossi vivaci, verdi intensi, tonalità della pelle naturali. Trasferisci il file HEIC sul tuo PC Windows, lo converti in JPG, e qualcosa non torna. I colori appaiono slavati, oppure sovrasaturi, o l'intera immagine ha un sottile spostamento di colore che la fa sembrare "sbagliata" anche se non riesci a individuare esattamente cosa è cambiato.
Non è una perdita di qualità dovuta alla compressione. È una mancata corrispondenza del color space — uno dei problemi più comuni e meno compresi nella conversione HEIC-JPG. Il problema ha due cause distinte che spesso si sommano:
- Disallineamento Display P3 vs sRGB color space — le foto iPhone sono acquisite in un color space più ampio rispetto a quello atteso dalla maggior parte dei monitor e dei software.
- Tone mapping da HDR a SDR — gli iPhone moderni acquisiscono dati HDR che devono essere "appiattiti" per gli schermi standard.
Capire questi due meccanismi è la chiave per ottenere colori accurati ogni volta.
I color profile spiegati: Display P3 vs sRGB
Ogni immagine digitale contiene valori di colore — numeri che rappresentano l'intensità di rosso, verde e blu di ciascun pixel. Ma quei numeri sono privi di significato senza un color profile (detto anche color space) che definisca come quei numeri appaiono effettivamente sullo schermo.
Dal 2016 ogni iPhone acquisisce le foto nel color space Display P3. È uno standard a wide gamut che copre circa il 50 % di colori in più rispetto al sRGB, il color space usato dalla maggior parte dei monitor Windows, dei browser web e dei software.
| Proprietà | Display P3 (iPhone) | sRGB (la maggior parte dei monitor) |
|---|---|---|
| Copertura del gamut | ~45,5 % dello spettro visibile | ~33,3 % dello spettro visibile |
| Gamma dei rossi | Rossi più profondi e saturi | Rossi standard |
| Gamma dei verdi | Verdi più ampi e vividi | Verdi standard |
| Gamma dei blu | Simile al sRGB | Simile al P3 |
| Usato da | iPhone, iPad, MacBook Pro, cinema DCI | Windows, web, la maggior parte di monitor e stampanti |
Il problema si verifica durante la conversione. Quando un file HEIC registrato in Display P3 viene convertito in JPG, il convertitore deve trasformare quei valori di colore P3 in valori sRGB. Il gamut più ampio del P3 significa che alcuni colori letteralmente non esistono nel sRGB — devono essere approssimati. Se il convertitore gestisce questo in modo errato (o ignora completamente il color profile), il risultato è uno di tre problemi:
- Slavato — i valori P3 vengono interpretati come sRGB senza trasformazione. Poiché il P3 codifica intervalli più ampi, i numeri grezzi corrispondono a valori sRGB meno saturi.
- Sovrasaturo — alcuni convertitori "allungano" i valori P3 per riempire il gamut sRGB, spingendo colori già saturi oltre il loro aspetto naturale.
- Spostamento di colore — i rossi virano verso l'arancione, i verdi verso il giallo o i toni della pelle assumono una tinta innaturale. Questo accade quando il color profile viene rimosso senza conversione.
Tone mapping da HDR a SDR
A partire dall'iPhone 12 (2020), Apple acquisisce le foto con metadati HDR (nello specifico Dolby Vision / Apple Gain Map). Questo aggiunge uno strato di boost della luminosità sopra l'immagine base, consentendo ai display compatibili HDR di mostrare alte luci più brillanti e una gamma dinamica più ampia rispetto alle foto standard.
Il JPG è un formato solo SDR. Non ha il concetto di dati di luminosità HDR. Durante la conversione da HEIC a JPG, le informazioni HDR devono essere "tone mapped" verso l'SDR — l'ampia gamma di luminosità deve essere compressa nell'intervallo più ristretto che l'SDR può rappresentare.
Un cattivo tone mapping causa ulteriori problemi visivi:
- Alte luci bruciate — le zone chiare (nuvole, riflessi, sorgenti luminose) che apparivano dettagliate in HDR risultano bianco puro nel JPG.
- Ombre piatte — le zone scure che avevano dettaglio visibile in HDR diventano uniformemente scure in SDR.
- Contrasto ridotto — l'immagine complessiva appare "piatta" rispetto a come si vedeva sullo schermo dell'iPhone, perché la gamma di luminosità HDR è stata compressa.
La combinazione della compressione del gamut P3-sRGB e del tone mapping HDR-SDR è ciò che fa apparire i JPG convertiti visibilmente diversi dagli HEIC originali — anche quando il convertitore gestisce correttamente risoluzione, nitidezza e compressione.
Come una conversione corretta gestisce i color profile
Una conversione HEIC-JPG tecnicamente corretta comprende tre passaggi che molti convertitori semplici saltano:
1. Leggere il profilo ICC incorporato
Ogni file HEIC proveniente da un iPhone contiene un color profile ICC che identifica il color space (Display P3) e fornisce i dati matematici della trasformazione. Un convertitore corretto legge questo profilo invece di assumere sRGB.
2. Trasformare i colori da P3 a sRGB
Usando il profilo ICC, il convertitore esegue una trasformazione matematica del color space che mappa ogni pixel dalle coordinate P3 alle coordinate sRGB. Non è una formula semplice — comporta moltiplicazioni matriciali attraverso uno spazio di connessione indipendente dal dispositivo (di solito CIE XYZ o CIE LAB).
Si usano comunemente due rendering intent:
- Percettivo — comprime l'intero gamut in modo proporzionale. Tutti i colori si spostano leggermente in modo che i colori P3 fuori gamut rientrino in sRGB mantenendo le relazioni relative. Il migliore per le fotografie.
- Colorimetrico relativo — mantiene identici i colori dentro il gamut e tronca i colori fuori gamut al limite sRGB più vicino. Conserva l'accuratezza per la maggior parte dei colori ma può perdere saturazione in rossi e verdi estremi.
3. Incorporare il profilo ICC sRGB nel JPG di output
Il JPG di output deve includere un profilo ICC sRGB incorporato affinché viewer ed editor sappiano come interpretare i valori di colore. Rimuovere il profilo (un errore comune) porta software diversi a fare ipotesi diverse, causando una visualizzazione dei colori incoerente.
Cosa succede quando i profili vengono rimossi? Senza un profilo ICC, il software assume sRGB per impostazione predefinita. Se i dati dei pixel erano già stati trasformati correttamente in sRGB, rimuovere il profilo è innocuo. Ma se i dati sono ancora in P3 (nessuna trasformazione eseguita), i valori P3 vengono interpretati erroneamente come sRGB, causando l'aspetto slavato. È di gran lunga la causa più comune dei problemi di colore nella conversione HEIC.
Cosa fa il nostro convertitore
La pipeline HEIC-JPG di CleverUtils gestisce i color profile correttamente in ogni fase:
- heif-convert decodifica il file HEIC preservando il profilo ICC incorporato (Display P3). I dati dei pixel grezzi e i metadati del color space vengono passati intatti alla fase di elaborazione.
- ImageMagick esegue la conversione del color space da P3 a sRGB usando la direttiva
-colorspace sRGB. Legge il profilo ICC sorgente, calcola la trasformazione attraverso lo spazio di connessione CIE e scrive valori di pixel sRGB mappati correttamente. - Il JPG di output viene codificato con qualità 92 con il profilo ICC sRGB incorporato, garantendo una visualizzazione dei colori coerente su tutti i viewer, browser e sistemi operativi.
Il risultato è un JPG che appare come la tua foto dovrebbe apparire — colori naturali che corrispondono a ciò che hai visto sullo schermo del tuo iPhone, correttamente adattati per i display sRGB.
Suggerimenti per ottenere i migliori colori
Anche con una gestione corretta del color profile, ci sono alcune cose che puoi fare per ottenere i colori più accurati:
- Usa qualità 90 o superiore — impostazioni di qualità JPG inferiori introducono artefatti di compressione che influiscono sull'accuratezza del colore in sfumature e toni sottili. Qualità 92 (impostazione predefinita di CleverUtils) è il giusto compromesso.
- Verifica su un monitor calibrato — la maggior parte dei monitor consumer non è calibrata dal punto di vista del colore e può visualizzare contenuti sRGB con una leggera dominante. Se l'accuratezza del colore è importante, considera un calibratore hardware (come Datacolor Spyder o X-Rite).
- Visualizza in più app — alcune app Windows (come il vecchio Windows Photo Viewer) ignorano i profili ICC. Testa i tuoi JPG convertiti in Windows Photos, in un browser web (Chrome rispetta i profili ICC) e nel tuo editor fotografico per confermare la coerenza del colore.
- Evita la riconversione — ogni conversione lossy-to-lossy aggiunge una generazione di degrado di qualità e colore. Converti una sola volta dall'HEIC originale e conserva quel JPG come copia master.
- Conserva l'HEIC originale — se la massima fedeltà del colore è importante (lavoro professionale, stampa), mantieni il file HEIC come copia di archivio. Contiene l'intero gamut P3 e i dati HDR che non possono essere recuperati da un JPG.