[英]Get binary image data from PIL.Image?
我在 PIL 中打開了一個圖像,如下所示:
from PIL import Image
i = Image.open("image.jpg")
我需要訪問這個文件的原始內容。 我怎樣才能獲得整個圖片數據,就像我已經完成open(...).read()
?
你可以看到這個答案python Image PIL to binary Hex
img對象需要再次保存; 將其寫入另一個 BytesIO 對象:
output = io.BytesIO() img.save(output, format='JPEG')
然后使用 .getvalue() 方法獲取寫入的數據:
hex_data = output.getvalue()
如果您想獲取圖像的實際字節,只需使用i.tobytes()
。 這是Pillow
,我不確定它是否在原始PIL
模塊中,但從文檔來看它應該是。
PIL 使用延遲打開機制,其中文件內容僅在需要時讀取。 為此,它可能會將文件引用保留在某些內部(私有)屬性中。
即使這個屬性是可訪問的,它肯定不會作為官方 PIL API 的一部分公開——而且它肯定不打算以這種方式使用。
讀取數據后,文件內容被解碼,並作為像素值保存在內存中(這通常是處理圖像時所需要的)。 該庫當然不會將未解碼的文件數據保存在內存中的數據結構中,因為它毫無意義。
如果您想要原始文件內容,您可能正在使用其他模塊處理圖像,或存儲它,或以與實際圖像內容無關的形式迭代數據 - 您不能直接打開文件定期“開放”?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.