[英]Python PIL - open image from file object: File not open for reading
imgfile = open('myimage.png', 'wb')
imgfile.write(decodestring(base64_image))
f = Image.open(imgfile)
imgfile.close()
我能夠write()
base64字符串作為圖像寫入imgfile
。 但是當我嘗試使用PIL打開此文件時,
File not open for reading
我究竟做錯了什么?
您打開該文件進行寫入,而不是讀取。 您必須使用雙重模式,然后首先倒回文件指針:
with open('myimage.png', 'w+b') as imgfile:
imgfile.write(decodestring(base64_image))
imgfile.seek(0)
f = Image.open(imgfile)
這里的w+
表示寫作和閱讀,請參閱open()
文檔 :
'+'
打開磁盤文件以進行更新(讀取和寫入)對於二進制讀寫訪問,模式
'w+b'
打開並將文件截斷為0個字節。'r+b'
打開文件時不會被截斷。
但是,這里實際上並不需要使用磁盤上的文件。 使用內存中文件代替:
from io import BytesIO
imgfile = BytesIO(decodestring(base64_image))
f = Image.open(imgfile)
這里的問題是您正在使用wb
打開要寫入的文件,也要使用w+b
打開以進行讀取。
此處的文檔中有詳細說明。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.