python 图形旋转_python翻转和旋转图片

网上经常能看到各种图片的翻转效果,今天我们用 python 来实现对一张图片进行各种角度的翻转。

还是用到了 python 中那个强大的图片处理库 pillow ,实现过程很简单,这里就不再过多说明了,直接看代码吧,代码中有注释。

# -*- coding: utf-8 -*-

from PIL import Image

import matplotlib.pyplot as plt

from matplotlib.font_manager import FontProperties

#引入本地字体文件,用于下面title的打印,不然中文会有乱码

font_set = FontProperties(fname=r"c:\windows\fonts\simsun.ttc", size=12)

#打开图片(这里替换成你自己电脑本地的图片)

img = Image.open('tim2.jpg')

#subplot是指将多张图片在同一张画布上显示,前两个参数分别是多少行多少列,第三个参数是指第几张图片

#如 subplot(3,3,2) 表示 3*3 共排9张图片,当前是第二张图片

#title 是指图片的标题

#逆时针旋转90

dst1 = img.transpose(Image.ROTATE_90)

plt.subplot(3,3,1)

plt.title('逆时针旋转90',fontproperties=font_set)

plt.imshow(dst1)

plt.axis('off')

#逆时针旋转180

dst2 = img.transpose(Image.ROTATE_180)

plt.subplot(3,3,2)

plt.title('逆时针旋转180',fontproperties=font_set)

plt.imshow(dst2)

plt.axis('off')

#逆时针旋转270

dst3 = img.transpose(Image.ROTATE_270)

plt.subplot(3,3,3)

plt.title('逆时针旋转270',fontproperties=font_set)

plt.imshow(dst3)

plt.axis('off')

#图片大小重置

dst4 = img.resize((60, 60))

plt.subplot(3,3,4)

plt.title('重置图片大小',fontproperties=font_set)

plt.imshow(dst4)

plt.axis('off')

#逆时针旋转45

dst5 = img.rotate(45)

plt.subplot(3,3,5)

plt.title('逆时针旋转45',fontproperties=font_set)

plt.imshow(dst5)

plt.axis('off')

#逆时针旋转60

dst6 = img.rotate(60)

plt.subplot(3,3,6)

plt.title('逆时针旋转45',fontproperties=font_set)

plt.imshow(dst6)

plt.axis('off')

#水平翻转

dst7 = img.transpose(Image.FLIP_LEFT_RIGHT)

plt.subplot(3,3,7)

plt.title('水平翻转',fontproperties=font_set)

plt.imshow(dst7)

plt.axis('off')

#垂直翻转

dst8 = img.transpose(Image.FLIP_TOP_BOTTOM)

plt.subplot(3,3,8)

plt.title('垂直翻转',fontproperties=font_set)

plt.imshow(dst8)

plt.axis('off')

#最后输出原图

plt.subplot(3,3,9)

plt.title('原图长这样',fontproperties=font_set)

plt.imshow(img)

plt.axis('off')

plt.show()

你可能感兴趣的:(python,图形旋转)