5

GIF 이미지 파일이 있습니다. 나는 PIL.Image을 사용하여 그것을 열었고 두 개의 크기 변환을 수행했습니다. 그럼 난 'ImageEnhance.Sharpness()를 수행 할 때 팔레트 이미지를 필터링 할 수 없습니다.

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

예외를 일으키는 ... 거기에 ImageSharpness.Enhance()를 사용하려고 :

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

나는이 오류에 대한 구글하려했지만 아무것도 찾지 못했습니다. 누군가 내가 잘못되고있는 것이 무엇인지 알아낼 수 있습니까?

FYI 입력 이미지의 모드는 'P'입니다. jpg 이미지로 작업하면이 문제가 발생하지 않습니다.

답변

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

팔레트 기반 이미지로 알고리즘을 작동시키지 못하는 것이 일반적입니다. 위의 convert은 각 픽셀 위치에서 전체 RGB 값을 갖도록 변경합니다.

+0

감사합니다. 어떤 이미지 모드를 사용해야합니까? 'RGB'와 'RGBA'를 제외한 모든 작업을 수행해야합니까? – feroze

+1

@feroze, 'L'모드도 작동합니다. 그렇지 않으면 정확히 맞습니다. –

+0

감사합니다. 신속한 답변 감사합니다. – feroze