iphone5的屏幕分辨率是1136 * 640
import os, re
from PIL import Image
if __name__ == '__main__':
#iphone5的高宽比
ratio = 1136/640
#读取文件夹里所有文件
file_name = os.listdir()
for i in file_name:
#判断是不是图片,这里懒得把所有后缀以及大写后缀写进去了
if re.search('jpg|jpeg|png|bmp$', i):
#打开图片
img = Image.open(i)
#这里判断4种需要缩小尺寸的情况,分别是
# 1. 横向图片,比例比横过来的屏幕“胖”,需要按宽度缩小
if (img.width >= img.height and img.width > 1136 and img.width / img.height > ratio):
img = img.resize((1136, int(1136 / img.width * img.height)), Image.ANTIALIAS)
# 2. 横向图片,比例比横过来的屏幕“高”,需要按高度缩小
elif(img.width >= img.height and img.height > 640 and img.width / img.height < ratio):
img = img.resize((int(640 / img.height * img.width), 640), Image.ANTIALIAS)
# 3. 竖向图片,比例比竖过来的屏幕“胖”,需要按宽度缩小
elif(img.width < img.height and img.width > 640 and img.height / img.width < ratio):
img = img.resize((640, int(640 / img.width * img.height)), Image.ANTIALIAS)
# 4. 竖向图片,比例比竖过来的屏幕“高”,需要按高度缩小
elif(img.width < img.height and img.height > 1136 and img.height / img.width > ratio):
img = img.resize((int(1136 / img.height * img.width), 1136), Image.ANTIALIAS)
#保存图片覆盖原图,当然也可以重命名一下另存为
img.save(i)
测试用了12张图片,尺寸分别是
- 横屏
- 宽一样,高度更大
- 高一样,宽度更大
- 宽一样,高度更小
- 高一样,宽度更小
- 高和宽都更大
- 高和宽都更小
- 竖屏
- 宽一样,高度更大
- 高一样,宽度更大
- 宽一样,高度更小
- 高一样,宽度更小
- 高和宽都更大
- 高和宽都更小
12张图片测试下来都符合要求,超出分辨率的图片被缩小,而没超出的图片没有变化