2011-01-07 40 views
9

更具体地说,我想更改通过Django ImageField上传的图像的文件类型。如何从内存文件创建PIL图像?

我目前的想法是创建一个自定义的ImageField并覆盖保存方法来操纵文件。

我遇到了麻烦的文件到内存中,因为一个PIL Image实例。

感谢您的帮助。

回答

11

注意,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 Image documentation

+1

刚刚意识到这一点。谢谢。 – Zach 2011-01-07 18:46:35