Pillow 關(guān)于閱讀圖像的更多信息

2021-07-06 13:37 更新

如前所述,  ?Image ?模塊的?open() ?功能用于打開圖像文件。在大多數(shù)情況下,只需將文件名作為參數(shù)傳遞給它。? Image.open()? 可以用作上下文管理器:

from PIL import Image
with Image.open("hopper.ppm") as im:
    ...

如果一切順利,結(jié)果是 ?PIL.Image.Image ?對象。否則, ?OSError ?引發(fā)異常。

您可以使用類似文件的對象,而不是文件名。對象必須實現(xiàn) ?file.read ?, ?file.seek? 和 ?file.tell ?方法,并以二進制模式打開。

從打開的文件讀取

from PIL import Image
with open("hopper.ppm", "rb") as fp:
    im = Image.open(fp)

要從二進制數(shù)據(jù)中讀取圖像,請使用 ?BytesIO ?類:

從二進制數(shù)據(jù)讀取

from PIL import Image
import io
im = Image.open(io.BytesIO(buffer))

請注意,在讀取圖像頭之前,庫會倒帶文件(使用 ?seek(0) ?)。此外,當(dāng)讀取圖像數(shù)據(jù)時(通過加載方法),也將使用SEEK。如果圖像文件嵌入到較大的文件中,例如tar文件,則可以使用 ?ContainerIO ?或 ?TarIO ?訪問它的模塊。

從tar檔案中讀取

from PIL import Image, TarIO

fp = TarIO.TarIO("Tests/images/hopper.tar", "hopper.jpg")
im = Image.open(fp)


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號