codecamp

Pillow 关于阅读图像的更多信息

如前所述,  ​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)


Pillow 使用PostScript打印
Pillow 控制解码器
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

Pillow 参考

Pillow ImageChops模块

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }