项目来源:show-me-the-code
5号题目:你有一个目录,装了很多照片,把它们的尺寸变成都不大于 iPhone5 分辨率的大小。
分析:这个题目的关键在于如何读取一个目录下的所有图片,另外就是Iphone 5的分辨率是多少?
上代码:
from PIL import Image
import os
#我自己的路径
path = "c:\projectpath"
#Iphone5的尺寸
X, Y = 1136, 640
#读取当前目录下所有以.jpg结尾的文件,并把这些路径拼成绝对路径,存入list中
image_paths = [os.path.join(path, f) for f in os.listdir(path) if f.endswith('.jpg')]
for image_path in image_paths:
i = Image.open(image_path)
x, y = i.size
if x > X and y > Y:
#将图片缩放到指定大小
i.thumbnail((X, Y))
i.save(image_path, 'jpeg')
效果图:
这里解释一下:我测试的图片都是直接下载的桌面壁纸,所以图片都很大,壁纸的默认分辨率是1968x1024
。
以上。