图片缩放, 旋转, 翻转
1、图像的缩放
- 图像的缩放使用
resize()
成员函数,直接在入参中指定缩放后的尺寸即可,示例如下:
from PIL import Image
#读取图像
im = Image.open("test.jpg")
im.show()
#原图像缩放为128x128
im_resized = im.resize((128, 128))
im_resized.show()
2、图像的旋转
- 图像的旋转使用成员函数
rotate()
,在入参中直接指定按逆时针旋转的角度即可,示例如下:
from PIL import Image
#读取图像
im = Image.open("lenna.jpg")
im.show()
# 指定逆时针旋转的角度
im_rotate = im.rotate(45)
im_rotate.show()
3、图像的翻转
- 图像的翻转使用
transpose()
成员函数,直接在入参中指定变换方式即可,不仅支持上下、左右翻转;也支持逆时针90、180、270等角度的旋转,效果与rotate()
相同。示例如下:
out = im.transpose(Image.FLIP_LEFT_RIGHT) # 左右翻转
out = im.transpose(Image.FLIP_TOP_BOTTOM) # 上下翻转
out = im.transpose(Image.ROTATE_90) # 旋转90度
out = im.transpose(Image.ROTATE_180)
out = im.transpose(Image.ROTATE_270)
测试
- 原图
- 测试
from PIL import Image
# 缩放
# 读取图像
img1 = Image.open('img01.png') # 原图400*400
img_resized = img1.resize((200, 200))
img_resized.save("img_resized.png", "png")
# img1.show()
# img_resized.show()
# 旋转
img_rotate_90 = img1.rotate(90).save("img_rotate_90.png", "png")
img_rotate_180 = img1.rotate(180).save("img_rotate_180.png", "png")
img_rotate_270 = img1.rotate(270).save("img_rotate_270.png", "png")
# 翻转
img1.transpose(Image.FLIP_LEFT_RIGHT).save("out_l_r.png", "png") # 左右翻转
img1.transpose(Image.FLIP_TOP_BOTTOM).save("out_t_b.png", "png") # 上下翻转
# 也可以旋转
img1.transpose(Image.ROTATE_90).save("out_90.png", "png") # 旋转90度
img1.transpose(Image.ROTATE_180).save("out_180.png", "png")
img1.transpose(Image.ROTATE_270).save("out_270.png", "png")