python-3.x - 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
)
解决方案
你可以看看源代码:
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)
推荐阅读
- azure - 从 Azure 运行时模块到外部网关的 HTTP POST 请求
- java - 使用 ByteBuddy 重新定义特定实例
- jenkins - 如何在声明性管道中的 Jenkinsfile 中跨阶段存储和取消存储人工制品
- git - 在 github 上授予协作者管理员权限
- bash - 杀死mac终端后运行appium-doctor不会显示之前设置的env变量
- python - 使用 xml.etree 解析 Python xml
- gstreamer - 通过 udp 流式传输网络摄像头卡住
- reactjs - React 状态和条件渲染
- javascript - 怎么输入值
- google-chrome-extension - IE 兼容模式下的 Edge 扩展