网上经常能看到各种图片的翻转效果,今天我们用 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()