Python Pillow 简明教程

Python Pillow - Function Reference

Python Pillow 是一款功能强大的图像处理库,它提供了各种模块和功能来执行各种与图像相关的工作。从基本的运算(如通道操作)到高级功能(如生成图形和计算图像上的数学表达式)。以下内容将概述 Pillow 提供的模块及其方法详情。

ImageChops (“Channel Operations”) Module

ImageChops 模块被称为“通道运算”或“chops”,它提供了一系列可对图像执行的运算,主要是执行数学图像运算,例如增强特殊效果、创建复合图像、算法绘画等等。这些运算对于图像增强、混合和创建效果非常有用。

需要注意的是,目前大多数通道运算仅适用于 8 位图像,例如“L”和“RGB”。

Functions

通道运算通常接受一个或两个图像输入,并产生一个新图像作为输出。除非另有说明,否则通道运算的结果始终会被剪裁在 0 到 MAX 范围内。对于此模块中支持的模式,MAX 设置为 255。

以下是此模块中提供的实际操作 −

Sr.No.

Methods with Description

1

* ImageChops.add()* 添加两幅图像,结果除以指定的比例,然后添加偏移量。

2

* ImageChops.subtract()* 将一幅图像从另一幅图像中减去,结果除以指定的比例,然后添加偏移量。

3

* ImageChops.add_modulo()* 添加两幅图像,不会裁剪结果。

4

* ImageChops.subtract_modulo()* 减去两幅图像,不会裁剪结果。

5

* ImageChops.composite()* 使用蒙版将两幅图像混合而组合的图像。

6

* ImageChops.duplicate()* 返回图像的副本。

7

* ImageChops.darker()* 比较两幅图像,为每个像素返回更暗的像素值。

8

* ImageChops.constant()* 创建新图像,使用给定的灰度填充图像的通道。

9

* ImageChops.difference()* 计算两幅图像之间的绝对差异。

10

* ImageChops.invert()* 反转图像的像素值。

11

* ImageChops.lighter()* 比较两幅图像,为每个像素返回更亮的像素。

12

* ImageChops.logical_and()* 在两幅图像之间执行逻辑 AND 操作。

13

* ImageChops.logical_or()* 在两幅图像之间执行逻辑 OR 操作。

14

* ImageChops.logical_xor()* 在两幅图像之间执行逻辑 XOR 操作。

15

ImageChops.multiply() Multiplies two images together.

16

* ImageChops.soft_light()* 使用柔光算法将两幅图像叠加在一起。

17

* ImageChops.hard_light()* 使用强光算法将两幅图像叠加在一起。

18

* ImageChops.overlay()* 在两幅图像之间应用叠加混合模式。

19

* ImageChops.offset()* 根据给定的偏移量平移图像。

20

* ImageChops.screen()* 使用蒙版混合模式,将两幅反转图像叠加在一起。

ImageOps Module

ImageOps 模块提供了一组用于图像处理的现成操作。以下是此模块中可用的方法列表。让我们探索和了解每种方法的基本功能。

Sr.No.

Methods with Description

1

* ImageOps.autocontrast()* 自动增强图像的对比度。

2

ImageOps.colorize() Colorizes a grayscale image.

3

* ImageOps.scale()* 按给定因子缩放图像。

4

* ImageOps.equalize()* 均衡图像的直方图。

5

* ImageOps.grayscale()* 将图像转换为灰度。

6

* ImageOps.posterize()* 减少每个颜色通道的位数。

7

* ImageOps.solarize()* 反转高于阈值的所有像素值。

ImageDraw Module

ImageDraw 模块提供简单的 2D 图形支持,用于创建新图像、添加形状和绘制文本。它通常用于即时生成图形和为图像添加注释。

以下是此模块中可用的方法列表。让我们探索和了解每种方法的基本功能 −

Sr.No.

Methods with Description

1

* ImageDraw.arc()* 在指定边界框内绘制圆弧。

2

* ImageDraw.chord()* 在边界框内绘制弦(圆的一部分)。

3

* ImageDraw.pieslice()* 在边界框内绘制一个填充的饼图扇区。

4

* ImageDraw.point()* 在图像上指定坐标处绘制点(单个像素)。

5

* ImageDraw.regular_polygon()* 使用给定的边界圆绘制一个常规多边形。

6

ImageDraw.rounded_rectangle() Draws a rounded rectangle.

7

* ImageDraw.multiline_text()* 在图像上的指定位置绘制多行文本。

ImageGrab Module

ImageGrab 模块提供用于将屏幕或屏幕部分的内容捕获到 PIL Image 内存中的函数。它可用于截屏或从剪贴板中捕获图像。让我们探索和了解此模块中每种可用功能的基本功能 −

Sr.No.

Methods with Description

1

* ImageGrab.grab()* 捕获屏幕的快照。

2

* ImageGrab.grabclipboard()* 捕获剪贴板图像的快照。

ImageMath Module

ImageMath 模块允许您对图像表达式进行求值。您可以在图像上执行算术、逐位和逻辑运算等运算。让我们探索和了解该方法的基本功能 −

Sr.No.

Methods with Description

1

* ImageMath.eval()* 评估图像上的数学表达式