如何从内存文件创建一个PIL图像?

12
更具体地说,我想要修改通过 Django ImageField 上传的图像的文件类型。
我目前的想法是创建一个自定义的 ImageField 并重写保存方法来处理该文件。
我遇到了将内存文件转变为 PIL 图像实例的问题。
感谢您的帮助。
2个回答

20

17
请注意,Django的ImageField继承了FieldFileopen方法。这将返回一个可传递给PIL的Image.open的流对象(用于从图像流创建Image对象的标准工厂方法)。
stream = imagefield.open()
image = Image.open(stream)
stream.close()
# ... and then save image with: image.save(outfile, format, options)

请参阅PIL图像文档


stream.close()会释放文件的引用吗?如果我想要执行stream.thumbnail(200x200, 'png'),我应该如何处理stream.close() - tutuca

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接