概念

Python图像库处理 光栅图像; 即,像素数据的矩形.

Bands

图像可以由一个或多个频带的数据组成. Python图像库允许你把几个波段存储在一个单一的形象,只要它们都具有相同的尺寸和深度. 例如,PNG图像可能具有 ‘R’, ‘G’, ‘B’, 和 ‘A’ 为红,绿,蓝条带,和Alpha透明度值. 许多操作分别作用于每个频带,例如,直方图. 通常认为各像素的具有每频带的一个值是有用的.

要获得号码和图像中的band的名称,请使用 getbands() 方法.

Modes

图像的 mode 定义了图像中的像素的类型和深度. 每个像素使用的全范围位深度的. 因此,一个 1-bit 的像素的范围为0-1,一个 8-bit 的像素具有0-255的范围等. 当前版本支持以下标准模式:

  • 1 (1-bit 像素,黑色和白色,存储有每字节的一个像素)

  • L (8-bit 像素,黑色和白色)

  • P (8-bit 象素,映射到任何其他模式下使用彩色调色板)

  • RGB (3×8-bit 像素,色彩真实)

  • RGBA (4×8-bit 像素,色彩真实与透明遮罩)

  • CMYK (4×8-bit 象素,分色)

  • YCbCr (3×8-bit 像素,彩色视频格式)

    • 请注意,这指的是JPEG,而不是ITU-R BT.2020,标准

  • LAB (3x8-bit 像素, 所述 L*a*b 色彩空间)

  • HSV (3x8-bit 像素, 色调,饱和度,值颜色空间中)

  • I (32-bit 带符号整数的像素)

  • F (32-bit 浮点像素)

Pillow 也提供有限的支持少数特殊模式,包括:

  • LA (L 带阿尔法)

  • PA (P 带阿尔法)

  • RGBX (真实的色彩与填充)

  • RGBa (真实的色彩与预乘alpha)

  • La (L 当预乘 alpha)

  • I;16 (16-bit 无符号整数像素)

  • I;16L (16-bit 小尾数无符号整数像素)

  • I;16B (16-bit 大端无符号整数像素)

  • I;16N (16-bit 本地端的无符号整数像素)

  • BGR;15 (15-bit 相反真彩)

  • BGR;16 (16-bit 相反真彩)

  • BGR;24 (24-bit 相反真彩)

  • BGR;32 (32-bit 相反真彩)

然而,Pillow不支持用户定义的模式;如果您需要处理未上面列出的乐队组合,使用图像对象的序列.

您可以阅读通过图像的方式 mode 属性. 这是包含在上述值中的一个的字符串.

Size

你可以通过 size 属性阅读图像尺寸. 这是一个二元组,包含在像素中的水平和垂直尺寸.

Coordinate System

Python图像库使用的笛卡尔坐标的像素中的左上角的系统,与(0,0) . 需要注意的是坐标指的是隐含的像素角落;一个像素的中心编址为(0,0) 实际上在位于(0.5,0.5) .

坐标通常传递到库作为2元组(X,Y) . 矩形被表示为4元组,具有第一给定的左上角. 例如,覆盖所有一个800x600像素的图像的矩形被写为(0,0,800,600) .

Palette

调色板模式(P) 使用一个调色板,以限定每个像素的实际色彩.

Info

您可以将辅助信息中使用的图像 〜PIL.Image.Image.info 属性. 这是一个字典对象.

信息如何这样的处理时,加载和保存图像文件是到文件格式处理程序 (见章 图像文件格式). 大多数处理器添加属性的 info 属性加载图像的时候,但保存图像时忽略它.

Orientation

支持JPG和TIFF图像 info 属性的一个共同因素是EXIF方向标记. 这是图像数据应如何导向的指令. 例如,它可以指示图像以90度旋转,或者被镜像. 若要将此信息以图像,exif_transpose() 都可以使用.

Filters

对于几何操作可以在多个输入像素映射到单个输出像素时,Python图像库提供了不同的重新采样 filters.

NEAREST

挑从输入图像的一个最近的像素. 忽略其他所有输入像素.

BOX

源图像的每个像素有助于以相同的权重的目标图像的一个像素。 对于倍增相当于 NEAREST 的。 该过滤器只能与 resize()thumbnail() 的方法使用。

3.4.0 新版功能.

BILINEAR

调整大小使用上可能有助于输出值的所有像素的线性内插计算输出像素值。 对于其他变换的线性内插在所述输入图像中的2×2的环境中使用。

HAMMING

产生更清晰的图像比``BILINEAR``,不会对当地一级位错像``BOX``。 该过滤器只能与 resize()thumbnail() 的方法使用。

3.4.0 新版功能.

BICUBIC

调整大小使用上可能有助于输出值的所有像素三次插值计算输出像素值。对于其他变换用于三次插值在输入图像中的4×4的环境。

LANCZOS

对可能向输出值的所有像素使用高品质的Lanczos过滤器(截断的正弦)计算输出像素值。 该过滤器只能与 resize()thumbnail() 的方法使用。

1.1.3 新版功能.

过滤器比较表

过滤

质量降尺度

倍增质量

性能

NEAREST

⭐⭐⭐⭐⭐

BOX

⭐⭐⭐⭐

BILINEAR

⭐⭐⭐

HAMMING

⭐⭐

⭐⭐⭐

BICUBIC

⭐⭐⭐

⭐⭐⭐

⭐⭐

LANCZOS

⭐⭐⭐⭐

⭐⭐⭐⭐