ImageOps 模块#

这个 ImageOps 模块包含许多“现成”的图像处理操作。这个模块有些实验性,大多数操作人员只处理L和RGB图像。

在 1.1.3 版本加入.

PIL.ImageOps.autocontrast(image, cutoff=0, ignore=None, mask=None, preserve_tone=False)[源代码]#

最大化(规格化)图像对比度。此函数计算输入图像(或遮罩区域)的直方图,删除 cutoff 直方图中最亮和最暗像素的百分比,并重新映射图像,以便最暗的像素变为黑色(0),最亮的像素变为白色(255)。

参数:
  • image -- 要处理的图像。

  • cutoff -- 从低端和高端的直方图中截断的百分比。既可以是(低、高)的元组,也可以是这两个数的单个数字。

  • ignore -- 背景像素值(无背景使用无)。

  • mask -- 使用蒙版内的像素计算对比度运算中使用的直方图。如果没有给定掩码,则整个图像用于直方图计算。

  • preserve_tone -- 以类似Photoshop样式的自动对比度保留图像色调。。。添加的版本::8.2.0

返回:

图像。

PIL.ImageOps.colorize(image, black, white, mid=None, blackpoint=0, whitepoint=255, midpoint=127)[源代码]#

为灰度图像上色。此函数计算将源图像中的所有黑色像素映射到第一种颜色并将所有白色像素映射到第二种颜色的颜色楔形。如果 mid 则它使用三色映射。这个 blackwhite 参数应该是RGB元组或颜色名称;或者,您也可以通过指定 mid 。可以指定任何颜色的映射位置(例如 blackpoint ),其中这些参数是对应于应映射相应颜色的整数值。这些参数必须具有逻辑顺序,以便 blackpoint <= midpoint <= whitepoint (如果 mid 是指定的)。

参数:
  • image -- 要着色的图像。

  • black -- 用于黑色输入像素的颜色。

  • white -- 用于白色输入像素的颜色。

  • mid -- 用于中间色调输入像素的颜色。

  • blackpoint -- 黑色映射的int值[0,255]。

  • whitepoint -- 白色映射的int值[0,255]。

  • midpoint -- 中间色调映射的int值[0,255]。

返回:

图像。

PIL.ImageOps.contain(image, size, method=Resampling.BICUBIC)[源代码]#

返回图像的调整大小版本,设置为请求大小内的最大宽度和高度,同时保持原始纵横比。

参数:
  • image -- 要调整大小和裁剪的图像。

  • size -- 请求的输出大小(以像素为单位),以(宽度、高度)元组的形式给出。

  • method -- 要使用的重采样方法。缺省值为 BICUBIC 。看见 过滤器

返回:

图像。

PIL.ImageOps.pad(image, size, method=Resampling.BICUBIC, color=None, centering=(0.5, 0.5))[源代码]#

返回图像的调整大小和填充版本,该版本已展开以填充请求的纵横比和大小。

参数:
  • image -- 要调整大小和裁剪的图像。

  • size -- 请求的输出大小(以像素为单位),以(宽度、高度)元组的形式给出。

  • method -- 要使用的重采样方法。缺省值为 BICUBIC 。看见 过滤器

  • color -- 填充图像的背景色。

  • centering -- 控制原始图像在填充版本中的位置。(0.5,0.5)将使图像居中(0,0)将使图像与左上角对齐(1,1)将使图像与右下角对齐

返回:

图像。

PIL.ImageOps.crop(image, border=0)[源代码]#

从图像中删除边框。从所有四个侧面移除相同数量的像素。此功能适用于所有图像模式。

参见

crop()

参数:
  • image -- 要裁剪的图像。

  • border -- 要删除的像素数。

返回:

图像。

PIL.ImageOps.scale(image, factor, resample=Resampling.BICUBIC)[源代码]#

返回按参数中给定的特定因子重新缩放的图像。大于1的因子将展开图像,在0和1之间收缩图像。

参数:
  • image -- 要重新缩放的图像。

  • factor -- 膨胀系数,如浮子。

  • resample -- 要使用的重采样方法。缺省值为 BICUBIC 。看见 过滤器

返回:

Image 对象。

PIL.ImageOps.deform(image, deformer, resample=Resampling.BILINEAR)[源代码]#

使图像变形。

参数:
  • image -- 要变形的图像。

  • deformer -- 变形器对象。任何实现 getmesh 方法可以使用。

  • resample -- 可选的重新采样过滤器。与pil.image.transform函数中的值相同。

返回:

图像。

PIL.ImageOps.equalize(image, mask=None)[源代码]#

均衡图像直方图。此函数将非线性映射应用于输入图像,以便在输出图像中创建统一的灰度值分布。

参数:
  • image -- 要均衡的图像。

  • mask -- 一个可选的面具。如果给定,分析中只包括由遮罩选择的像素。

返回:

图像。

PIL.ImageOps.expand(image, border=0, fill=0)[源代码]#

向图像添加边框

参数:
  • image -- 要展开的图像。

  • border -- 边框宽度(像素)。

  • fill -- 像素填充值(颜色值)。默认值为0(黑色)。

返回:

图像。

PIL.ImageOps.fit(image, size, method=Resampling.BICUBIC, bleed=0.0, centering=(0.5, 0.5))[源代码]#

返回图像的调整大小和裁剪版本,裁剪为所需的纵横比和大小。

这个功能是由凯文·卡扎邦贡献的。

参数:
  • image -- 要调整大小和裁剪的图像。

  • size -- 请求的输出大小(以像素为单位),以(宽度、高度)元组的形式给出。

  • method -- 要使用的重采样方法。缺省值为 BICUBIC 。看见 过滤器

  • bleed -- 从所有四个边缘删除图像外部的边框。该值为小数百分比(使用0.01表示一个百分比)。默认值为0(无边框)。不能大于或等于0.5。

  • centering -- 控制裁剪位置。使用(0.5,0.5)进行中心裁剪(例如,如果裁剪宽度,则从左侧减去50%,因此从右侧减去50%)。(0.0,0.0)将从左上角裁剪(即,如果裁剪宽度,则从右侧裁剪所有裁剪,如果裁剪高度,则从底部裁剪所有裁剪)。(1.0,0.0)将从左下角等处进行裁剪(即,如果裁剪宽度,则从左侧取下所有裁剪,如果裁剪高度,则从顶部取下所有裁剪,因此从底部取下所有裁剪)。

返回:

图像。

PIL.ImageOps.flip(image)[源代码]#

垂直翻转图像(从上到下)。

参数:

image -- 要翻转的图像。

返回:

图像。

PIL.ImageOps.grayscale(image)[源代码]#

将图像转换为灰度。

参数:

image -- 要转换的图像。

返回:

图像。

PIL.ImageOps.invert(image)[源代码]#

反转(否定)图像。

参数:

image -- 要反转的图像。

返回:

图像。

PIL.ImageOps.mirror(image)[源代码]#

水平翻转图像(从左向右)。

参数:

image -- 要镜像的图像。

返回:

图像。

PIL.ImageOps.posterize(image, bits)[源代码]#

减少每个颜色通道的位数。

参数:
  • image -- 要进行后验的图像。

  • bits -- 为每个信道保留的位数(1-8)。

返回:

图像。

PIL.ImageOps.solarize(image, threshold=128)[源代码]#

反转高于阈值的所有像素值。

参数:
  • image -- 要日光化的图像。

  • threshold -- 此灰度级别之上的所有像素都是反转的。

返回:

图像。

PIL.ImageOps.exif_transpose(image, *, in_place=False)[源代码]#

如果图像具有EXIF方向标签,而不是1,则相应地转置图像,并删除方向数据。

参数:
  • image -- 要转置的图像。

  • in_place -- 布尔型。仅限关键字的参数。如果 True ,原始图像被就地修改,并且 None 是返回的。如果 False (默认)、新的 Image 对象返回,并应用换位。如果没有转置,将返回图像的副本。