更具體地說,我想更改通過Django ImageField上傳的圖像的文件類型。如何從內存文件創建PIL圖像?
我目前的想法是創建一個自定義的ImageField並覆蓋保存方法來操縱文件。
我遇到了麻煩的文件到內存中,因爲一個PIL Image實例。
感謝您的幫助。
更具體地說,我想更改通過Django ImageField上傳的圖像的文件類型。如何從內存文件創建PIL圖像?
我目前的想法是創建一個自定義的ImageField並覆蓋保存方法來操縱文件。
我遇到了麻煩的文件到內存中,因爲一個PIL Image實例。
感謝您的幫助。
注意,Django的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)
你有沒有試過StringIO?
看到文檔http://effbot.org/imagingbook/introduction.htm#more-on-reading-images
#Reading from a string
import StringIO
im = Image.open(StringIO.StringIO(buffer))
剛剛意識到這一點。謝謝。 – Zach 2011-01-07 18:46:35