📜  Python PIL | Image.transform() 方法(1)

📅  最后修改于: 2023-12-03 15:04:07.356000             🧑  作者: Mango

Python PIL | Image.transform() 方法

简介

PIL(Python Imaging Library)是一个Python库,用于操作图像。Image.transform()方法是PIL库中一个用于图像转换的方法。

语法
Image.transform(size, method, data=None, resample=NEAREST, fill=0)
  • size:最终转换后的图像大小(width, height)。
  • method:要应用的变换方法。可选方法包括:EXTENT, AFFINE, QUAD, or MESH。详见下文。
  • data:包含转换数据的元组或列表.不同的变换类型需要不同的数据格式(详见下文)。
  • resample:变换时的重采样方法。可选方法包括:NEAREST, BILINEAR, BICUBIC, and ANTIALIAS。默认为NEAREST。
  • fill:图像空白部分的填充颜色。默认为黑色。
变换方法
EXTENT

将图像平移至给定的框内。

Image.transform(size, EXTENT, data=(x0, y0, x1, y1), resample=NEAREST, fill=0)
  • data:元组包括4个值,对应该图像的左上角和右下角的坐标。
  • resamplefill参数同前。
AFFINE

应用仿射变换。仿射变换将图像进行拉伸、旋转、剪切等变换。

Image.transform(size, AFFINE, data=(a, b, c, d, e, f), resample=NEAREST, fill=0)
  • data:元组包括6个数字,分别代表矩阵的6个元素。
  • resamplefill参数同前。
QUAD

使用鸟瞰图变换将任意四边形区域变换为矩形。

Image.transform(size, QUAD, data=(x0, y0, x1, y1, x2, y2, x3, y3), resample=NEAREST, fill=0)
  • data:元组包括8个数字,表示四边形的8个点的坐标。四个点的坐标从左上角开始,按顺序绕图形边界逆时针旋转。
MESH

使用三角形曲面变换将图像呈现为另一种形状。

Image.transform(size, MESH, data=(mesh, tri), resample=NEAREST, fill=0)
  • data:元组包括mesh和tri两个项目,分别是图像的网格和三角形数据。每个三角形由三个点的索引定义。
例子
from PIL import Image

im = Image.open("example.png")
size = (512, 512)
data = (0.5, 0, 0, 0, 1, 100)

# 应用仿射变换
im = im.transform(size, AFFINE, data)

# 保存结果
im.save("result.png")
总结

Image.transform() 方法是PIL库中一个用于图像转换的方法。它提供四种变换方法:EXTENT、AFFINE、QUAD和MESH。所有这些方法都采用一个size元组,一个method参数以及特定于每个方法的一组数据来工作。