问题
在日常工作中经常会遇到图片处理的操作,比如某些网上上传头像时有着严格的大小、像素的限制,而这些操作处理起来又非常复杂,在面对很多图片需要处理时,就存在很多重复性的工作存储,所以我们可以使用Python来进行快速的处理。
办法
在python中有一个图像处理库——PIL(Python Imaging Library),已经是Python平台事实上的图像处理标准库了。PIL提供了功能丰富的方法,比如格式转换、旋转、裁剪、改变尺寸、像素处理、图片合并等,非常强大。
在python3中的安装命令如下:
pip3 install Pillow
接下来基于上图使用python对其进行相关的操作。
from PIL import Image#读取图片,并显示img = Image.open("test.png")img.show()
如果选择的图像不是正向的,还可以读图像进行翻转,以确保正向显示:
# 旋转图像90度img.rotate(90).show()
设置图像的像素大小,并保存成“test-1.png”文件:
# resize成300*300像素大小。 size = 300,300img.resize(size)img.save("test-1.png")
完整代码
#!/usr/local/bin/python3# -*- coding: utf-8 -*-from PIL import Imageimport os# 旋转# img.rotate(90).show()# 定义需要处理images的目录workDir = "/Users/mac/Documents/workspaces/github/python/office/test02/"# 获取当前目录所有的文件列表fileNames = os.listdir(workDir)# resize成300*300像素大小。 size = 300,300# 循环遍历逐一读取image文件for fileName in fileNames: # 获取当前文件的绝对路径 imgPath = os.path.join(workDir,fileName) img = Image.open(imgPath) img = img.resize(size) img.save(os.path.join(workDir,"new_"+fileName))