如何使用Python脚本生成iOS开发中的二倍图生成一倍图+三倍图。
配置环境
- 安装Python3。
- 安装 PIL,也就是 Pillow,如果没有下载的话,可以通过 pip 进行下载
pip3 install Pillow
。
- 将原始二倍图片放入指定的文件夹。
代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
| # python3
from PIL import Image import glob import os, sys
# 扩展图片为1、2、3倍图 def scale_image(file_name,file_type): ori_img = Image.open(file_name + '.' + file_type)
#一倍图 new_img = ori_img.resize((int(ori_img.width/2),int(ori_img.height/2)),Image.BILINEAR) new_img.save(file_name + '@1x.' + file_type)
#三倍图 new_img = ori_img.resize((int(ori_img.width*1.5),int(ori_img.height*1.5)),Image.BILINEAR) new_img.save(file_name + '@3x.' + file_type) #二倍图重命名 try: os.rename(file_name + '.' + file_type,file_name + '@2x.' + file_type) except Exception: print('重命名发生错误') else: pass finally: pass
# 是否是需要扩展的图片 def is_normal_image(file_name): ignore_string = ['@1x','@2x','@3x']
# 如果自带@1x,@2x,@3x,则不需要进行扩展 for name in ignore_string: if name in file_name: return False
return True
current_path = os.path.dirname(__file__) png_files = glob.glob(current_path + "/*.png") for img_file in png_files : file_name = img_file[:-4] if is_normal_image(file_name): scale_image(file_name,'png') else : print(file_name)
|
使用
将此脚本放入二倍图片同级目录的文件夹中,执行此脚本。
思路
- 主要目的是缩放图片,所以需要使用PIL中的 resize 方法,将图片大小进行缩放,Image.BILINEAR代表用的是哪种算法;
- 判断文件夹中的图片是否已经缩放过了,原理是根据缩放过的会含有@1x,@2x,@3x的字样,所以对包含这种名字的图片不进行处理即可;
- 遍历文件夹,并获得所有的图片,这里使用glob.glob()方法获取所有符合要求的图片。(在这里就只找.png格式的图片)