Pillow 关于阅读图像的更多信息
2021-07-06 13:37 更新
如前所述, Image
模块的open()
功能用于打开图像文件。在大多数情况下,只需将文件名作为参数传递给它。 Image.open()
可以用作上下文管理器:
from PIL import Image
with Image.open("hopper.ppm") as im:
...
如果一切顺利,结果是 PIL.Image.Image
对象。否则, OSError
引发异常。
您可以使用类似文件的对象,而不是文件名。对象必须实现 file.read
, file.seek
和 file.tell
方法,并以二进制模式打开。
从打开的文件读取
from PIL import Image
with open("hopper.ppm", "rb") as fp:
im = Image.open(fp)
要从二进制数据中读取图像,请使用 BytesIO
类:
从二进制数据读取
from PIL import Image
import io
im = Image.open(io.BytesIO(buffer))
请注意,在读取图像头之前,库会倒带文件(使用 seek(0)
)。此外,当读取图像数据时(通过加载方法),也将使用SEEK。如果图像文件嵌入到较大的文件中,例如tar文件,则可以使用 ContainerIO
或 TarIO
访问它的模块。
从tar档案中读取
from PIL import Image, TarIO
fp = TarIO.TarIO("Tests/images/hopper.tar", "hopper.jpg")
im = Image.open(fp)
以上内容是否对您有帮助:
更多建议: