簡體   English   中英

如何從內存文件中創建PIL圖像?

[英]How can I created a PIL Image from an in-memory file?

更具體地說,我想更改通過Django ImageField上傳的圖像的文件類型。

我目前的想法是創建一個自定義ImageField並覆蓋save方法來操作該文件。

因為PIL Image實例,我無法獲取內存文件。

謝謝您的幫助。

你試過StringIO嗎?

參見文檔http://effbot.org/imagingbook/introduction.htm#more-on-reading-images

#Reading from a string 
import StringIO

im = Image.open(StringIO.StringIO(buffer))

需要注意的是Django的ImageField繼承了open從方法FieldFile 這將返回一個流對象,該對象可以傳遞給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文檔

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM