5

Tengo un archivo de imagen GIF. Lo abrí usando PIL.Image e hice un par de transformaciones de tamaño en él. Luego trató de utilizar ImageSharpness.Enhance() en él ...'no se puede filtrar el error de las imágenes de la paleta' al hacer un ImageEnhance.Sharpness()

sharpener = PIL.ImageEnhance.Sharpness(img) 
sharpened = sharpener.enhance(2.0) 

Esto está causando una excepción:

<type 'exceptions.ValueError'> 
('cannot filter palette images',) 

Traté de google para este error, pero no encontró nada. ¿Alguien puede ayudarme a descubrir qué está pasando mal?

FYI el modo de la imagen de entrada es 'P'. No tengo este problema si trabajo con imágenes jpg.

Respuesta

7
sharpener = PIL.ImageEnhance.Sharpness (img.convert('RGB')) 

Es bastante común que los algoritmos no puedan funcionar con una imagen basada en paleta. El convert en lo anterior lo cambia para tener un valor RGB completo en cada ubicación de píxel.

+0

Gracias! ¿Para qué modos de imagen debo hacer esto? ¿Debo hacerlo para todo excepto 'RGB' y 'RGBA'? – feroze

+1

@feroze, el modo 'L' también funciona; de lo contrario, tienes razón. –

+0

Gracias. Aprecia tu respuesta rápida. – feroze

Cuestiones relacionadas