图像的几何变换主要包括图像翻转、图像旋转和图像变换操作,Image 类提供了处理这些操作的函数 transpose()、rotate() 和 transform(),下面分别对它们进行讲解。
该函数可以实现图像的垂直、水平翻转,语法格式如下:
method 参数决定了图片要如何翻转,参数值如下:
使用示例如下:
im = Image.open("C:/Users/Administrator/Desktop/cdsy.png")
#返回一个新的Image对象
im_out=im.transpose(Image.FLIP_LEFT_RIGHT)
im_out.show()
im_out.save("C:/Users/Administrator/Desktop/水平翻转.png")
图像显示结果,如下所示:
当我们想把图像旋转任意角度时,可以使用 rotate() 函数,语法格式如下:
参数说明如下:
使用示例如下:
im = Image.open("C:/Users/Administrator/Desktop/cdsy.png")
#translate的参数值可以为负数,并将旋转图之外的区域填充为绿色
#返回同一个新的Image对象
im_out=im.rotate(45,translate=(0,-25),fillcolor="green")
im_out.show()
im_out.save("C:/Users/Administrator/Desktop/旋转图像.png")
输出结果:
该函数能够对图像进行变换操作,通过指定的变换方式,产生一张规定大小的新图像,语法格式如下:
参数说明:
使用示例如下:
from PIL import Image
im = Image.open("C:/Users/Administrator/Desktop/cdsy.png")
#设置图像大小250*250,并根据data的数据截取原图像的区域,生成新的图像
im_out=im.transform((250,250),Image.EXTENT,data=[0,0,30 + im.width//4,im.height//3])
im_out.show()
im_out.save("C:/Users/Administrator/Desktop/变换.png")
输出图像显示如下: