Python Pillow 的缩略图方法返回无
Posted
技术标签:
【中文标题】Python Pillow 的缩略图方法返回无【英文标题】:Python Pillow's thumbnail method returning None 【发布时间】:2018-09-16 01:03:15 【问题描述】:我有一个小脚本,用于使用 Python 的 Pillow 库批量调整图像大小。该脚本适用于调整大小的方法,但是纵横比的变化会扭曲图像,因此我尝试使用缩略图方法测试相同的脚本。
我很困惑,因为从文档和其他堆栈问题看来,我可以将 resize 方法换成 thumbnail 方法。但是,当我切换到缩略图时,会返回一个非类型对象。
我正在使用 Python 3.5 和 Pillow 5.0。有什么想法吗?
from PIL import Image
import glob
file_list = glob.glob('images_pre/*.jpg')
for f in file_list:
image = Image.open(f)
# image = image.resize((170, 170), Image.ANTIALIAS)
print('image pre: ' + str(image))
image = image.thumbnail((128, 128), Image.BICUBIC)
print('image post: ' + str(image))
file_name = f.split('/')[-1]
try:
image.save('images_post/'+file_name, "JPEG")
except AttributeError:
print('image failed to save: ' + str(image))
【问题讨论】:
thumbnail()
不返回任何东西(因此返回None
)。它将图像对象转换为自身的缩略图,然后您必须使用save()
保存。
成功了。谢谢你,先生。
【参考方案1】:
Image.thumbnail
修改图像并且不返回任何内容。
文档http://pillow.readthedocs.io/en/5.1.x/reference/Image.html#PIL.Image.Image.thumbnail 说:
请注意,此函数会修改
Image
对象。如果您还需要使用全分辨率图片,请将此方法应用于原始图片的copy()
。
【讨论】:
以上是关于Python Pillow 的缩略图方法返回无的主要内容,如果未能解决你的问题,请参考以下文章
Pillow 返回错误:“IOError:图像文件被截断(6 个字节未处理)”