更具体地说,我想要修改通过 Django ImageField 上传的图像的文件类型。
我目前的想法是创建一个自定义的 ImageField 并重写保存方法来处理该文件。
我遇到了将内存文件转变为 PIL 图像实例的问题。
感谢您的帮助。
我目前的想法是创建一个自定义的 ImageField 并重写保存方法来处理该文件。
我遇到了将内存文件转变为 PIL 图像实例的问题。
感谢您的帮助。
你尝试使用StringIO了吗?
查看文档http://effbot.org/imagingbook/introduction.htm#more-on-reading-images
#Reading from a string
import StringIO
im = Image.open(StringIO.StringIO(buffer))
ImageField
继承了FieldFile
的open
方法。这将返回一个可传递给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