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 的缩略图方法返回无的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 opencv-python 创建缩略图?

CDR不显示缩略图怎么办? CDR不显示缩略图的解决方法

Pillow 返回错误:“IOError:图像文件被截断(6 个字节未处理)”

[AWS][Serverless] 无服务器Serverless 图像缩略图应用

怎么将WIN10的文档图片缩略图显示出来?

PHP缩略图组件的使用?