2009-09-02 2 views
2

Python 초급 질문. 아래 코드는 내 문제를 설명해야한다 :Python (이미징 라이브러리) : 인수로 문자열 다시 샘플

import Image 

resolution = (200,500) 
scaler = "Image.ANTIALIAS" 

im = Image.open("/home/user/Photos/DSC00320.JPG") 

im.resize(resolution , scaler) 

결과 :

Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    File "/usr/lib/python2.6/dist-packages/PIL/Image.py", line 1255, in resize 
    raise ValueError("unknown resampling filter") 
ValueError: unknown resampling filter 

이 하나가 작동합니다

im.resize(resolution , Image.ANTIALIAS) 

답변

2

당신이 말했듯이, im.resize(resolution , Image.ANTIALIAS) 당신은 가지고 가야 솔루션

입니다 이보다 보살핌이 im.resize(resolution , "Image.ANTIALIAS")과 다릅니다.

예에서 변수 scaler의 값은 Image.ANTIALIAS 인 값인 "Image.ANTIALIAS"입니다.

XXXX나타내는 문자열은 문자열 "12"는 정수 12보다 완전히 다른 그대로 값 XXXX보다 다르다.

7

글쎄, 다음 Image.ANTIALIAS이 문자열이 아닌, 그래서 하나로서 취급하지 않습니다

scaler = Image.ANTIALIAS 
3

이 @ThibThib는 "Image.ANTIALIAS"을 사용하여 말했듯이 Image.ANTIALIAS 같은 것이 아니다 . 하지만 당신은 항상 당신이 다음을 수행 할 수있는 문자열로 리 샘플 값을 기대할 경우 : 아마도,

scaler = 'ANTIALIAS' 
resample = { 
    'ANTIALIAS': Image.ANTIALIAS, 
    'BILINEAR': Image.BILINEAR, 
    'BICUBIC': Image.BICUBIC 
} 

im.resize(resolution , resample[scaler]) 
+0

을 또는 : 'im.resize을 (해상도, getattr (이미지, 스케일러))' – tzot

관련 문제