2011-04-27 6 views
5

PIL로드 기능으로 열린 이미지에서 반환 된 픽셀 값에 대한 질문이 있습니다. 나는 다음과 같은 코드를 사용하고 있습니다 :GIF 및 JPEG의 파이썬 및 PIL 픽셀 값이 서로 다릅니다.

frame = Image.open(fname).load() 
a = frame[10, 10] 

나는 GIF 이미지를로드하는 경우, a는 정수 값 43입니다하지만이 이미지 JPEG로 변환하고 코드를 다시 실행하면, a는 튜플 (253, 254, 100)이다.

왜? 그리고 (253, 254, 100)을 43으로 다시 변환하려면 어떻게해야합니까?

감사합니다.

답변

5

GIF는 팔레 타이 징되지만 JPEG는 RGB입니다. 이미지를 변형하는 행위는 팔레트를 처분하므로 GIF의 팔레트 항목을보고 원하는 색상과 가장 가까운 것을 찾으십시오.

+0

더 자세히 설명하면 : GIF 이미지에는 최대 256 색의 표가 있습니다. 각 픽셀에는이 테이블에 대한 색인이 있으며 (이 예에서는 10), 색상을 결정하는 데 사용됩니다. JPEG는 각 픽셀의 RGB 값을 저장합니다. GIF의 색상 표에서 항목 10을 보면 "(253, 254, 100)"(또는 그와 매우 가깝습니다) 여야합니다. – Blair

관련 문제