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)
答案 0 :(得分:7)
那么,Image.ANTIALIAS不是字符串,所以不要把它当作一个字符串:
scaler = Image.ANTIALIAS
答案 1 :(得分:3)
正如@ThibThib所说,使用“Image.ANTIALIAS”与Image.ANTIALIAS不同。 但是,如果您始终希望将重新采样值作为字符串获取,则可以执行以下操作:
scaler = 'ANTIALIAS'
resample = {
'ANTIALIAS': Image.ANTIALIAS,
'BILINEAR': Image.BILINEAR,
'BICUBIC': Image.BICUBIC
}
im.resize(resolution , resample[scaler])
答案 2 :(得分:2)
如你所说,im.resize(resolution , Image.ANTIALIAS)
是解决方案
你必须小心,而不是im.resize(resolution , "Image.ANTIALIAS")
。
在您的示例中,变量scaler
将字符串"Image.ANTIALIAS"
作为值,与值Image.ANTIALIAS
不同。
表示 xxxx 的字符串与值 xxxx 不同,正如字符串"12"
与整数完全不同12
。
答案 3 :(得分:0)
我知道我在重新提出一个老问题,但为了帮助任何人在现代处理与此类似的事情。
Pillow 不再支持 ANTIALIAS 过滤器。
上述解决方案(虽然适用于 2009 年的 PIL 和 Pillow 版本),但仍会导致当前版本的 Pillow 出现 ValueError: unknown resampling filter
。