python自动化生成IOS的图标

作者:书弋江山 时间:2021-04-26 19:16:34 

本文实例为大家分享了python自动化生成IOS的图标,供大家参考,具体内容如下

每次上架之前都要生成十几个图片感觉无聊麻烦,考虑使用脚本处理

脚本使用python 和一部分shell 处理的,python部分主要是使用PIL库处理图片,和调用shell脚本,shell 主要是操作文件


#coding=utf-8
import os ,threading
from PIL import Image
import subprocess
import json
class ImgManager(object):
 thread_lock = threading.Lock()
 @classmethod
 def sharedinstance(cls):
   with ImgManager.thread_lock:
     if not hasattr(ImgManager,"instance"):
       ImgManager.instance = ImgManager()
   return ImgManager.instance

# 运行shell命令
 def runshellCMD(self,cmd,dsr):
   progress = subprocess.Popen(cmd,shell=True)
   progress.wait()
   result = progress.returncode
   if result !=0:
     print("%s失败"%(dsr))
   else:
     print("%s成功"%(dsr))

#创建图片
 def createImg(self,model):
   path = '%s/AppStore.png'%(os.getcwd())
   currentPath = "%s/Images/%s"%(os.getcwd(),model.filename)
   print(currentPath)
   im = Image.open(path,'r')
   # w,h=im.size
   # print("%s,%s"%(str(w),str(h)))
   #
   im.thumbnail((float(model.get_wh()),float(model.get_wh())))
   if model.filename.endswith('.png'):
     im.save("%s" % (currentPath),"png")
   else:
     # self.runshellCMD("sudo cp %s %s" % (path, currentPath), "拷贝")
     self.addTransparency(im)
     im.save("%s" % (currentPath), "jpeg")
     # r, g, b, alpha = im.split()
     # print("%s"%(str(im.split()[0])))

#修改透明度
 def addTransparency(img, factor=0.0):
   img = img.convert('RGBA')
   img_blender = Image.new('RGBA', img.size, (0, 0, 256, 256))
   img = Image.blend(img_blender, img, factor)
   return img

#解析Contents.json,这个文件每一个Images.xcassets 的AppIcon文件夹都有,直接复用就可以了
 def handle_icon_images(self):

jsonpath = os.getcwd() +"/Contents.json"
   if not os.path.exists(jsonpath):
     print("Contents.json path not exite")
     return
   with open(jsonpath,'r') as f:
     jsonstr = f.read()
   modle = json.loads(jsonstr)
   arrs = modle['images']
   # print(arrs)
   icon_models=[]
   for obj in arrs:
     size=obj["size"]
     idiom=obj["idiom"]
     filename=obj["filename"]
     scale=obj["scale"]
     icom =iconImg(size=size,idiom=idiom,filename=filename,scale=scale)
     # icon_models.append(icom)
     self.createImg(icom)

"""

"size" : "29x29",
  "idiom" : "iphone",
  "filename" : "Icon-Small@3x.png",
  "scale" : "3x"
 """
 #json 数据里面有效数据的类
class iconImg(object):
 def __init__(self,size,idiom,filename,scale):
   self.size = size
   self.idiom = idiom
   self.filename = filename
   self.scale = scale

def show(self):
   print("%s,%s,%s,%s"%(self.size,self.idiom,self.filename,self.scale))

def get_wh(self):
   return (float(self.size.split('x')[0]))*(float(self.scale.split('x')[0]))

if __name__ == '__main__':
 ImgManager.sharedinstance().handle_icon_images()

来源:https://blog.csdn.net/bobbob32/article/details/80291277

标签:python,IOS,图标
0
投稿

猜你喜欢

  • Python Matplotlib中使用plt.savefig存储图片的方法举例

    2021-11-19 14:08:55
  • Python3利用Dlib19.7实现摄像头人脸识别的方法

    2022-08-08 06:41:22
  • 详解python使用canvas实现移动并绑定键盘

    2022-08-18 01:02:52
  • python实现爬取图书封面

    2023-06-08 16:40:44
  • sql 查询记录数结果集某个区间内记录

    2023-07-09 08:25:01
  • php的优点总结 php有哪些优点

    2023-11-14 16:03:25
  • Python 确定多项式拟合/回归的阶数实例

    2023-08-26 23:54:58
  • MySQL的命令行提示符及其表达的意思

    2008-03-17 13:34:00
  • Python读取txt内容写入xls格式excel中的方法

    2023-08-31 22:29:17
  • python tkinter实现弹窗的输入输出

    2021-10-03 14:58:42
  • python使用KNN算法手写体识别

    2022-06-28 05:30:56
  • SQL Server 日期相关资料详细介绍

    2012-07-11 16:14:07
  • Python+unittest+requests+excel实现接口自动化测试框架

    2021-09-08 07:04:49
  • 分析并输出Python代码依赖的库的实现代码

    2022-04-05 17:07:23
  • 对用户进行电话访谈的一点感想

    2009-12-28 13:05:00
  • python使用cartopy库绘制台风路径代码

    2023-08-22 15:50:18
  • 关于document.createDocumentFragment()

    2009-04-05 16:04:00
  • Python通过命令提示符安装matplotlib

    2022-12-05 01:16:53
  • Python使用Scrapy爬取妹子图

    2022-06-17 23:47:41
  • Jupyter Notebook添加代码自动补全功能的实现

    2021-01-07 07:31:12
  • asp之家 网络编程 m.aspxhome.com