2011-01-07 41 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