2012-05-08 17 views
5

Sto usando il seguente codice per ridimensionare un'immagine utilizzando PILImage Resize utilizzando PIL cambia colore drasticamente

img = Image.open("in.png") 
resized = ImageOps.fit(img, (200, 200), method=Image.ANTIALIAS) 
resized.save("out.png") 

Ma i colori dell'immagine in uscita aspetto molto diverso. Qui vengono per il confronto, quello grande è l'originale:

enter image description here enter image description here

La cosa ancora più strana è che quando li apro con il visualizzatore di immagini in Ubuntu, hanno lo stesso aspetto. Ma non in Windows o MacOS.

+1

I colori mi sembrano uguali qui. Questo è con Python 2.x? Stai riscontrando lo stesso problema se lo fai con un altro formato immagine (ad es. Jpg) – Levon

+1

@Levon: l'immagine a destra è più luminosa e più rossa. Non sarai in grado di dirlo senza un sistema di correzione del colore funzionante. –

risposta

3

L'immagine più grande utilizza il profilo colore Adobe RGB. Viene omesso dall'immagine più piccola, il che significa che il sistema di correzione del colore utilizzerà alcune impostazioni predefinite (probabilmente sRGB), che probabilmente hanno una gamma più piccola. Ciò farà apparire i colori più opachi.

Soluzione 1: Creare l'immagine originale utilizzando sRGB anziché Adobe RGB.

Soluzione 2: Copia il profilo colore dall'immagine più grande all'immagine più piccola.

La maggior parte dei sistemi Linux non supporta la correzione del colore, almeno non nello stesso ambito operativo di OS X o Windows. Quindi il fatto che appaiano identici nel visualizzatore di immagini di Ubuntu è in realtà una limitazione del programma di visualizzazione di immagini, che non è in grado di comprendere i profili di colore.

+0

Cool, grazie! qualche idea su come posso copiare il profilo del colore da un'immagine all'altra? –

+0

Non ne ho idea. –

+0

Ho cambiato l'immagine originale in sRGB e ha funzionato! : D –