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()* 评估图像上的数学表达式 |