使用Python导出不同尺寸图标

时间:2023-03-06   阅读次数:

基于工作需要,使用Python编写一个小工具,在Dos命令中使用,选择导出设定的几个尺寸后,再输入原始图片名称,即可自动批量导出图片到指定文件夹中,方便快捷,省去在PhotoShop中的繁琐操作。

    具体使用方法:

1、在当前文件夹的地址栏中输入cmd,打开命令窗口;

2、使用输入 python img.py 进入操作选择命令。

3、选择需要导出的尺寸系列;

4、再选择原始图片名称,需要在当前文件夹下,多个图片可以用小逗号“,”隔开。

5、完全自动导出到当前文件夹新创建的img文件夹下。

imgpy.png

## by Adong
## Version 2019.04.21
## Version 2019.04.23
## Version 2023.03.03
### 添加为每一张图导出设定尺寸图片功能
### 2023.03.03添加多图同时导出功能
from PIL import Image
import os

imageDirectory = ""
imgOld=""
imgType=".png"
imageSize = [64,48,32]
imgsize2=[82,60,30]
##导出不同尺寸图片
def ExportAllSize(imgOld):
    getpath=imageDirectory+imgOld+imgType
    if(os.path.exists(getpath)):
        for index in range(len(imageSize)):
            size = imageSize[index]
            # name = imageNames[index]
            im = Image.open(imageDirectory+imgOld+imgType)
            if not os.path.exists(imageDirectory +"/Img"):
                os.makedirs(imageDirectory +"/Img")
            im.resize((size,size), Image.ANTIALIAS).save(imageDirectory +"/Img/"+imgOld+"_%s.png"%(size))
            print("输出图片:%s_%s"%(imgOld,size))
    else:
        print("没有原始图片")

## 搜索文件夹内的文件
def FearchFile(pathset,size):
    filedir=pathset
    list=os.listdir(filedir)
    for i in range(0,len(list)):
        fname=os.path.basename(list[i])
        if(fname[-4:]==".png" or fname[-4:]==".PNG"):
            im=Image.open(os.path.join(filedir+'/',list[i]))
            im.resize((size,size),Image.ANTIALIAS).save(filedir+"/%s_%s.png"%(fname[:-4],size))
            print("导出成功:%s_%s.png"%(fname[:-4],size))


print('''  -------------------------------------------------\n |【1】为原始图导出48,32尺寸,时装、宠物蛋形、圣兵 |\n |【2】为原始图导出60,30尺寸,宠物圆形              |\n | 注:可批量输入原始图名称,用英文,分隔           |\n  -------------------------------------------------''')
selinput=input("输入命令码:")
if(selinput=="2"):
    imageSize=imgsize2
# elif(selinput=="2"):
imgOldin=input("输入原始图片名:")
imageDirectory=os.path.dirname(__file__)
isstr="," in imgOldin
#做多个遍历
if(isstr):
    arrays=imgOldin.split(',')
    for i in arrays:
        ExportAllSize("/"+i)



其它文章