ImageTransform 模块

ImageTransform 模块包含一些内置 Image.Transform 方法的 ImageTransformHandler 实现。

class PIL.ImageTransform.Transform(data: Sequence[Any])[source]

基类: ImageTransformHandler

ImageTransform 中定义的其他变换的基类。

getdata() tuple[Transform, Sequence[int]][source]
method: Transform
transform(size: tuple[int, int], image: Image, **options: Any) Image[source]

执行变换。从 Image.transform() 调用。

class PIL.ImageTransform.AffineTransform(data: Sequence[Any])[source]

基类: Transform

定义仿射图像变换。

此函数接受一个 6 元组 (a, b, c, d, e, f),其中包含来自仿射变换矩阵的前两行。对于输出图像中的每个像素 (x, y),新值将从输入图像中的位置 (a x + b y + c, d x + e y + f) 处获取,四舍五入到最接近的像素。

此函数可用于缩放、平移、旋转和剪切原始图像。

参见 Image.transform()

参数:

matrix – 一个 6 元组 (a, b, c, d, e, f),包含来自仿射变换矩阵的前两行。

method: Transform = 0
class PIL.ImageTransform.PerspectiveTransform(data: Sequence[Any])[source]

基类: Transform

定义透视图像变换。

此函数接受一个 8 元组 (a, b, c, d, e, f, g, h)。对于输出图像中的每个像素 (x, y),新值将从输入图像中的位置 ((a x + b y + c) / (g x + h y + 1), (d x + e y + f) / (g x + h y + 1)) 处获取,四舍五入到最接近的像素。

此函数可用于缩放、平移、旋转和剪切原始图像。

参见 Image.transform()

参数:

matrix – 一个 8 元组 (a, b, c, d, e, f, g, h)。

method: Transform = 2
class PIL.ImageTransform.ExtentTransform(data: Sequence[Any])[source]

基类: Transform

定义一个从图像中提取子区域的转换。

将图像中的矩形(由两个角点定义)映射到给定大小的矩形。生成的图像将包含从两个角点之间采样的数据,使得输入图像中的 (x0, y0) 最终出现在输出图像中的 (0,0) 位置,而 (x1, y1) 则出现在 size 位置。

此方法可用于裁剪、拉伸、缩小或镜像当前图像中的任意矩形。它比裁剪操作略慢,但与相应的调整大小操作一样快。

参见 Image.transform()

参数:

bbox – 一个 4 元组 (x0, y0, x1, y1),指定输入图像坐标系中的两个点。请参见 坐标系.

method: Transform = 1
class PIL.ImageTransform.QuadTransform(data: Sequence[Any])[source]

基类: Transform

定义一个四边形图像转换。

将图像中的四边形(由四个角点定义的区域)映射到给定大小的矩形。

参见 Image.transform()

参数:

xy – 一个 8 元组 (x0, y0, x1, y1, x2, y2, x3, y3),包含源四边形的左上角、左下角、右下角和右上角。

method: Transform = 3
class PIL.ImageTransform.MeshTransform(data: Sequence[Any])[source]

基类: Transform

定义一个网格图像转换。网格转换由一个或多个独立的四边形转换组成。

参见 Image.transform()

参数:

data – (bbox, quad) 元组列表。

method: Transform = 4