Python PIL将任意图片调整为1080x1080尺寸失败,求正确实现方法
问题原因
- 代码1中
resize()方法不会修改原图对象,而是返回一个调整尺寸后的新Image对象,你没有接收返回值,所以显示的还是原图 - 代码2的
thumbnail()方法是等比缩小缩略图方法,仅当原图尺寸大于指定尺寸时才会缩小,且强制保持原图宽高比,不会拉伸图片,也不会对小图执行放大操作,因此无法得到1080x1080的正方形输出 - 代码3、4的裁剪逻辑存在宽高参数混淆、硬编码裁剪边界的问题,导致图片被错误裁剪
正确实现代码
你不介意拉伸的前提下,直接使用以下代码即可强制将任意尺寸的图片调整为1080x1080:
from PIL import Image TARGET_SIZE = (1080, 1080) userImage = Image.open("./Images/UsersImages/001.png") # 接收resize返回的新对象,指定重采样算法保证调整后的图片清晰度 userImage = userImage.resize(TARGET_SIZE, resample=Image.Resampling.LANCZOS) userImage.show() # 需要保存可执行:userImage.save("调整后图片.png")
如果使用的Pillow版本低于9.1.0,把Image.Resampling.LANCZOS替换为Image.ANTIALIAS即可。
内容的提问来源于stack exchange,提问作者Simonalbi
相关产品推荐
相关产品推荐

