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

在Mac Mojave上用Python3.6.9和Pillow6.2.1调整图片大小无效求助

问题分析与解决

嘿,这绝对不是Pillow的bug,是你操作时忽略了一个核心细节——Pillow的resize()方法不会直接修改原图像对象,它会返回一个调整好尺寸的新图像实例!

你看你的代码里,调用image.resize((500,500))后,没有把这个返回的新对象保存到变量里,原image依然是最初创建的100x100图像,所以最后save('resized.png')保存的还是原图,自然尺寸和体积都没变。

修正后的代码

只需要把resize返回的新图像赋值给变量,再保存就可以了:

import numpy
from PIL import Image
data = numpy.zeros((100, 100, 3), dtype=numpy.uint8)
data[50, 51] = [255, 0, 0]
data[50, 52] = [0, 255, 0]
data[50, 53] = [0, 0, 255]
image = Image.fromarray(data)
image.save('orig.png')
# 关键:接收resize返回的新图像对象
resized_image = image.resize((500,500))
resized_image.save('resized.png')

如果你想直接覆盖原变量,也可以简化成这样:

image = image.resize((500,500))
image.save('resized.png')

补充说明

其实Pillow里很多图像操作(比如crop()、rotate()、filter())都是这种“非原地修改”的设计,目的是保留原始图像数据,方便你后续继续用原图做其他操作。下次遇到类似操作记得留意返回值哦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.06 11:02:43