2012-05-08 15 views
5

Estoy utilizando el código siguiente para cambiar el tamaño de una imagen usando PILcambio de tamaño de imágenes con colores PIL cambia drásticamente

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

Pero los colores de la imagen de salida se ven muy diferentes. Aquí son para la comparación, el más grande es el original:

enter image description here enter image description here

Lo que es aún más extraño es que cuando los abro usando el visor de imágenes en Ubuntu, que tienen el mismo aspecto. Pero no en Windows o MacOS.

+1

Aquí los colores me parecen iguales. Esto es con Python 2.x? ¿Te encuentras con el mismo problema si haces esto con otro formato de imagen (por ejemplo, jpg) – Levon

+1

@Levon: la imagen de la derecha es más brillante y más roja. No podrá saber sin un sistema de corrección de color en funcionamiento. –

Respuesta

3

La imagen de mayor tamaño utiliza el perfil de color Adobe RGB. Se omite en la imagen más pequeña, lo que significa que el sistema de corrección de color usará algunos valores predeterminados (probablemente sRGB), que probablemente tengan una gama más pequeña. Esto hará que los colores parezcan más apagados.

Solución 1: Cree la imagen original con sRGB en lugar de Adobe RGB.

Solución 2: Copie el perfil de color de la imagen más grande a la más pequeña.

La mayoría de los sistemas Linux no admiten la corrección de color, al menos no en el mismo ámbito que OS X o Windows. Entonces, el hecho de que aparezcan igual en el visor de imágenes de Ubuntu es realmente una limitación del programa visor de imágenes, que no puede comprender los perfiles de color.

+0

Cool, gracias! alguna idea sobre cómo puedo copiar el perfil de color de una imagen a otra? –

+0

No tengo idea. –

+0

¡Cambié la imagen original a sRGB y funcionó! : D –

Cuestiones relacionadas