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

如何使用Pillow显示缩略图?遇显示报错与画质问题求助

解决Pillow缩略图显示报错与小图放大画质问题

1. new.show()报错的原因与修复

thumbnail()方法是原地修改原图像对象,它的返回值为None,所以你代码里的new变量实际是None,调用None.show()自然会触发错误。

正确写法:

如果需要保留原图,先复制一份再处理;无需保留原图的话,直接操作原图后调用show()即可:

from PIL import Image

# 方式1:保留原图
img = Image.open('block.jpg')
img_thumb = img.copy()
img_thumb.thumbnail((400, 400), Image.Resampling.LANCZOS)
img_thumb.show()

# 方式2:直接修改原图
img = Image.open('block.jpg')
img.thumbnail((400, 400), Image.Resampling.LANCZOS)
img.show()

注意:你的原图是1616像素,远小于目标尺寸(400,400),thumbnail()仅会缩小图像(保持比例不超过目标尺寸),不会执行放大操作,所以处理后图像依旧是1616大小。

2. 小图放大画质差的优化方案

1616像素的图放大到400400属于向上采样,画质损失是分辨率不足导致的必然结果,但可以根据需求选择合适的插值方法优化:

  • 想要保留像素图的方块风格,使用Image.Resampling.NEAREST(最近邻插值),不会产生模糊:
    from PIL import Image
    
    img = Image.open('block.jpg')
    enlarged_img = img.resize((400, 400), Image.Resampling.NEAREST)
    enlarged_img.show()
    
  • 想要稍微平滑的效果,可尝试Image.Resampling.BICUBIC,但依旧无法完全避免模糊问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 01:52:34