問題是從內存加載jpeg編碼的圖像。Python成像:從內存中加載jpeg
我收到一個字符串從插座:
jpgdata = self.rfile.read(sz)
,我知道這是JPEG編碼的圖像。
我需要對它進行解碼。 最笨的解決辦法是:
o = open("Output/1.jpg","wb")
o.write(jpgdata)
o.close()
dt = Image.open("Output/1.jpg")
的問題是如何做到的內存是一回事嗎?
問題是從內存加載jpeg編碼的圖像。Python成像:從內存中加載jpeg
我收到一個字符串從插座:
jpgdata = self.rfile.read(sz)
,我知道這是JPEG編碼的圖像。
我需要對它進行解碼。 最笨的解決辦法是:
o = open("Output/1.jpg","wb")
o.write(jpgdata)
o.close()
dt = Image.open("Output/1.jpg")
的問題是如何做到的內存是一回事嗎?
PIL的Image.open對象接受任何類似文件的對象。這意味着你可以用一個StringIO對象上的圖像數據,並把它傳遞給Image.Open
from cStringIO import StringIO
file_jpgdata = StringIO(jpgdata)
dt = Image.open(file_jpgdata)
或者,嘗試只是路過self.rfile
作爲參數傳遞給Image.open - 它可能工作得很好。 (這是對於Python 2 - 對於Python 3使用from io import BytesIO
)
使用StringIO的這樣,如果它是一個文件,圖片可以訪問您的數據。