Pillow Image模块功能
-
PIL.Image.open(fp, mode='r')
打开并标识给定的图像文件。
这是一个懒惰的操作;此函数标识文件,但文件保持打开状态,并且在尝试处理数据(或调用 load()
方法)。见 new()
。请参阅Pillow 中的文件处理。
-
fp – 文件名(字符串)、
pathlib.Path
对象或文件对象。文件对象必须实现file.read
、file.seek
和file.tell
方法,并以二进制模式打开。 -
模式- 模式。如果给出,这个参数必须是“r”。
-
格式- 尝试加载文件的格式列表或元组。这可用于限制检查的格式集。通过
None
以尝试所有支持的格式。您可以通过运行python3 -m PIL
或使用PIL.features.pilinfo()
函数来打印可用格式集。
一个Image
对象。
-
FileNotFoundError
– 如果找不到文件。 -
PIL.UnidentifiedImageError
– 如果无法打开和识别图像。 -
ValueError
– 如果mode
不是“r”,或者StringIO
实例用于fp
. -
TypeError
– 如果formats
不是None
,则为列表或元组。
为了防止“解压炸弹”(即解压成大量数据的恶意文件,旨在通过使用大量内存而崩溃或造成中断)引起的潜在 DOS 攻击,如果像素数在图像中超过某个限制,Pillow 将发出一个DecompressionBombWarning
,PIL.Image.MAX_IMAGE_PIXELS
。
这个阈值可以通过设置PIL.Image.MAX_IMAGE_PIXELS
来改变。也可以通过设置Image.MAX_IMAGE_PIXELS = None
禁用它。
如果需要,可以使用 将警告转换为带有warnings.simplefilter('error', Image.DecompressionBombWarning)
的错误或使用 warnings.simplefilter('ignore', Image.DecompressionBombWarning)
完全抑制 。另请参阅 日志记录文档以将警告输出到日志记录工具而不是使用 stderr。
如果像素数大于两倍PIL.Image.MAX_IMAGE_PIXELS
,则DecompressionBombError
将被提升。
图像处理
-
PIL.Image.
alpha_composite
(im1, im2) -
IM1上的Alpha复合IM2。
- 参数
-
-
im1 -- 第一张图片。必须具有模式RGBA。
-
im2 -- 第二张图片。必须具有模式RGBA,并且大小与第一个图像相同。
-
- 返回
-
一个
Image
对象。
-
PIL.Image.
blend
(im1, im2, alpha) -
通过使用常量alpha在两个输入图像之间插入来创建新图像。:
out = image1 * (1.0 - alpha) + image2 * alpha
- 参数
-
-
im1 -- 第一张图片。
-
im2 -- 第二张图片。必须与第一个图像具有相同的模式和大小。
-
alpha -- 插值α因子。如果alpha为0.0,则返回第一个图像的副本。如果alpha为1.0,则返回第二个图像的副本。alpha值没有限制。如有必要,将结果裁剪到允许的输出范围内。
-
- 返回
-
一个
Image
对象。
-
PIL.Image.
composite
(image1, image2, mask) -
通过使用透明蒙版混合图像来创建合成图像。
- 参数
-
-
image1 -- 第一张图片。
-
image2 -- 第二张图片。必须与第一个图像具有相同的模式和大小。
-
mask -- 掩模图像。此图像可以具有模式“1”、“l”或“RGBA”,并且必须与其他两个图像具有相同的大小。
-
-
PIL.Image.
eval
(image, *args) -
对给定图像中的每个像素应用函数(应采用一个参数)。如果图像有多个波段,则对每个波段应用相同的功能。请注意,该函数对每个可能的像素值进行一次评估,因此不能使用随机组件或其他生成器。
- 参数
-
-
image -- 输入图像。
-
function -- 一个函数对象,采用一个整型参数。
-
- 返回
-
一个
Image
对象。
-
PIL.Image.
merge
(mode, bands) -
将一组单波段图像合并为新的多波段图像。
- 参数
-
-
mode -- 用于输出图像的模式。见: 模式 。
-
bands -- 包含输出图像中每个波段一个单波段图像的序列。所有带区的大小必须相同。
-
- 返回
-
一个
Image
对象。
构建图像
-
PIL.Image.
new
(mode, size, color=0) -
创建具有给定模式和大小的新图像。
- 参数
-
-
mode -- 用于新图像的模式。见: 模式
-
size -- 以像素为单位包含(宽度、高度)的2元组。
-
color -- 图像要使用什么颜色。默认为黑色。如果给定,对于单波段模式,这应该是一个整数或浮点值,对于多波段模式,这应该是一个元组(每个波段一个值)。创建RGB图像时,还可以使用ImageColor模块支持的颜色字符串。如果颜色为“无”,则图像不会初始化。
-
- 返回
-
一个
Image
对象。
-
PIL.Image.
fromarray
(obj, mode=None) -
从导出数组接口的对象(使用缓冲区协议)创建图像内存。
如果 obj 不是连续的,则调用
tobytes
方法并使用frombuffer()
。如果你有一张NumPy的图片:
from PIL import Image import numpy as np im = Image.open('hopper.jpg') a = np.asarray(im)
然后可以将其转换为Pillow图像:
im = Image.fromarray(a)
- 参数
-
-
obj -- 带数组接口的对象
-
mode -- 要使用的模式(如果没有将由类型决定)见: 模式 。
-
- 返回
-
一个
Image
对象。
1.1.6 新版功能。
-
PIL.Image.
frombytes
(mode, size, data, decoder_name='raw', *args) -
从缓冲区中的像素数据创建图像内存的副本。
最简单的形式是,这个函数接受三个参数(模式、大小和未压缩的像素数据)。
您还可以使用PIL支持的任何像素解码器。有关可用解码器的详细信息,请参阅部分 编写你自己的文件解码器。
请注意,此函数只解码像素数据,而不是整个图像。如果在字符串中包含整个图像,请将其包装为
BytesIO
对象中,然后使用open()
来加载它。- 参数
-
-
mode -- 图像模式。见: 模式 。
-
size -- 图像大小。
-
data -- 包含给定模式的原始数据的字节缓冲区。
-
decoder_name -- 使用什么解码器。
-
args -- 给定解码器的其他参数。
-
- 返回
-
一个
Image
对象。
-
PIL.Image.
frombuffer
(mode, size, data, decoder_name='raw', *args) -
在字节缓冲区中创建引用像素数据的图像内存。
此功能类似于
frombytes()
,但尽可能使用字节缓冲区中的数据。这意味着对原始缓冲区对象的更改将反映在此图像中)。并非所有模式都可以共享内存;支持的模式包括“l”、“rgbx”、“rgba”和“cmyk”。请注意,此函数只解码像素数据,而不是整个图像。如果您有一个字符串中的整个图像文件, 请将其包装在一个
BytesIO
对象中,然后使用open()
来加载它。在当前版本中,用于“原始”解码器的默认参数与用于
frombytes()
。这是一个bug,可能会在将来的版本中修复。如果执行此操作,当前版本将发出警告;要禁用该警告,应提供完整的参数集。详情见下文。- 参数
-
-
mode -- 图像模式。见: 模式 。
-
size -- 图像大小。
-
data -- 包含给定模式的原始数据的字节或其他缓冲区对象。
-
decoder_name -- 使用什么解码器。
-
args -- 给定解码器的其他参数。对于默认编码器(“raw”),建议您提供完整的参数集:
frombuffer(mode, size, data, "raw", mode, 0, 1)
-
- 返回
-
一个
Image
对象。
1.1.4 新版功能。
生成图像
-
PIL.Image.
effect_mandelbrot
(size, extent, quality) -
生成覆盖给定范围的Mandelbrot集。
- 参数
-
-
size -- 以像素为单位的请求大小,作为2元组:(宽度、高度)。
-
extent -- 要覆盖的范围,作为4元组:(x0,y0,x1,y2)。
-
quality -- 质量。
-
-
PIL.Image.
effect_noise
(size, sigma) -
生成以128为中心的高斯噪声。
- 参数
-
-
size -- 以像素为单位的请求大小,作为2元组:(宽度、高度)。
-
sigma -- 噪声标准差。
-
注册插件
这些函数供插件作者使用。应用程序作者可以忽略它们。
-
PIL.Image.
register_open
(id, factory, accept=None) -
注册图像文件插件。应用程序代码中不应使用此函数。
- 参数
-
-
id -- 图像格式标识符。
-
factory -- 图像文件工厂方法。
-
accept -- 一种可选功能,可用于快速拒绝具有其他格式的图像。
-
-
PIL.Image.
register_mime
(id, mimetype) -
注册图像MINE类型。应用程序代码中不应使用此函数。
- 参数
-
-
id -- 图像格式标识符。
-
mimetype -- 此格式的图像mime类型。
-
-
PIL.Image.
register_save
(id, driver) -
注册图像保存功能。应用程序代码中不应使用此函数。
- 参数
-
-
id -- 图像格式标识符。
-
driver -- 以这种格式保存图像的函数。
-
-
PIL.Image.
register_save_all
(id, driver) -
注册一个图像函数来保存多帧格式的所有帧。应用程序代码中不应使用此函数。
- 参数
-
-
id -- 图像格式标识符。
-
driver -- 以这种格式保存图像的函数。
-
-
PIL.Image.
register_extension
(id, extension) -
注册图像扩展名。应用程序代码中不应使用此函数。
- 参数
-
-
id -- 图像格式标识符。
-
extension -- 用于此格式的扩展名。
-
-
PIL.Image.
register_extensions
(id, extensions) -
注册映像扩展名。应用程序代码中不应使用此函数。
- 参数
-
-
id -- 图像格式标识符。
-
extensions -- 用于此格式的扩展名列表。
-
-
PIL.Image.
register_decoder
(name, decoder) -
注册图像解码器。应用程序代码中不应使用此函数。
- 参数
-
-
name -- 解码器的名称
-
decoder -- 返回
imagefile.pydecoder
对象的可调用(模式,参数)
-
4.1.0 新版功能。
-
PIL.Image.
register_encoder
(name, encoder) -
注册图像编码器。应用程序代码中不应使用此函数。
- 参数
-
-
name -- 编码器的名称
-
encoder -- 返回
imagefile.pyencoder
对象的可调用(模式,参数)
-
4.1.0 新版功能。
更多建议: