You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Pillow的im.resize处理PNG图片时RGB颜色异常如何解决?

解决Pillow resize透明通道伪影问题

问题根源

用Pillow默认参数缩放带透明通道的PNG时,默认插值算法会把透明区域的RGB通道和周围非透明区域的颜色混在一起计算,再叠加透明度,结果就是透明区域冒出红、蓝这类原本没有的伪色。

修复代码

调整代码,用对透明通道友好的插值算法,同时确保颜色模式正确:

from PIL import Image

filename = "trees_bg.png"
# 先确保图像是RGBA模式,避免颜色模式异常
im = Image.open(filename).convert("RGBA")
new_size = (256, 256)
# 用LANCZOS插值,对透明区域的处理更精准
resized_img = im.resize(new_size, resample=Image.Resampling.LANCZOS)
# 保存时明确指定PNG格式,防止不必要的颜色转换
resized_img.save("resized_trees_bg.png", format="PNG")

版本兼容提示

如果你的Pillow版本低于9.1.0,把Image.Resampling.LANCZOS换成Image.LANCZOS就行。

内容的提问来源于stack exchange,提问作者loonatic

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 06:46:04