首页 > 解决方案 > PIL 调整大小过滤器与其整数表示之间的映射是什么?

问题描述

我正在尝试使用 Python 包 Pillow 调整图像大小。文档说参数之一是resample并且它可以是PIL.Image.NEAREST, PIL.Image.BOX, PIL.Image.BILINEAR, PIL.Image.HAMMING,PIL.Image.BICUBIC或之一PIL.Image.LANCZOS。默认过滤器也是PIL.Image.BICUBIC.

函数声明是Image.resize(size, resample=3, box=None, reducing_gap=None). 请注意如何resample是整数而不是上面列出的过滤器之一。此外,3与他们给过滤器的顺序不对应,因为它应该等同于PIL.Image.BICUBIC.

我的问题是,过滤器的整数表示是什么?(专门找PIL.Image.LANCZOS

标签: python-3.xpython-imaging-library

解决方案


你可以看看源代码

NEAREST = NONE = 0
BOX = 4
BILINEAR = LINEAR = 2
HAMMING = 5
BICUBIC = CUBIC = 3
LANCZOS = ANTIALIAS = 1

也就是说,您永远不需要直接使用整数,最好只Image.LANCZOS在需要的任何地方引用它。即以下两个调用是等价的,但第一个更易读:

Image.resize(size, resample=Image.LANCZOS)
Image.resize(size, resample=1)

推荐阅读