3

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)
4

4 回答 4

8

那么,那么 Image.ANTIALIAS 不是一个字符串,所以不要把它当作一个:

scaler = Image.ANTIALIAS
于 2009-09-02T11:13:50.627 回答
4

正如@ThibThib 所说,使用“Image.ANTIALIAS”与 Image.ANTIALIAS 不同。但是,如果您总是希望将重采样值作为字符串获取,则可以执行以下操作:

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

im.resize(resolution , resample[scaler])
于 2009-09-02T11:14:34.900 回答
3

正如你所说,im.resize(resolution , Image.ANTIALIAS)是解决方案

你要小心比这不同im.resize(resolution , "Image.ANTIALIAS")

在您的示例中,变量scaler将字符串"Image.ANTIALIAS"作为值,与 value 不同Image.ANTIALIAS

表示xxxx 的字符串与值xxxx不同,正如字符串与整数完全不同一样。"12"12

于 2009-09-02T11:10:16.470 回答
0

我知道我正在复活一个老问题,但要帮助任何在现代处理与此相关的事情的人。

Pillow 不再支持 ANTIALIAS 过滤器。

上述解决方案(虽然适用于 2009 年的 PIL 和 Pillow 版本),但仍会导致ValueError: unknown resampling filter当前版本的 Pillow。

于 2021-05-28T12:06:12.853 回答