2012-04-25 136 views
5

我有一个GIF图像文件。我用PIL.Image打开它,并做了几个尺寸转换。然后我试图使用就可以了ImageSharpness.Enhance() ...'无法过滤调色板图像'的错误,当做ImageEnhance.Sharpness()

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

这是引起异常:

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

我试图谷歌这个错误,但没有发现任何东西。有人能帮我弄清楚出了什么问题吗?输入图像的模式为'P'。如果我使用jpg图像,我没有这个问题。

回答

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

算法无法使用基于调色板的图像很常见。上面的convert将其更改为在每个像素位置具有完整的RGB值。

+0

谢谢!我应该为此做哪种图像模式?除了'RGB'和'RGBA'以外,我应该怎么做? – feroze 2012-04-25 21:41:47

+1

@feroze,'L'模式也可以工作,否则你完全正确。 – 2012-04-25 21:49:17

+0

谢谢。感谢您的快速回答。 – feroze 2012-04-25 21:52:59