如何使用Python脚本生成iOS开发中的二倍图生成一倍图+三倍图。
配置环境
- 安装Python3。
- 安装 PIL,也就是 Pillow,如果没有下载的话,可以通过 pip 进行下载 pip3 install Pillow。
- 将原始二倍图片放入指定的文件夹。
代码
| 12
 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格式的图片)