python自动化生成IOS的图标

本文实例为大家分享了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()

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • 利用Python为iOS10生成图标和截屏

    简介 这两天更新完Xcode8之后发现Xcode对图标的要求又有了变化,之前用的一个小应用"IconKit"还没赶上节奏,已经不能满足Xcode8的要求了. 于是就想起来用Python自己做个脚本来生成图标. 其实这个脚本很早就写了,现在为了适应iOS10,就修改完善下,并且放到了GitHub. 可以看看效果图: 1.png 代码: #encoding=utf-8 #by 不灭的小灯灯 #create date 2016/5/22 #update 2016/9/21 #support

  • Python实现iOS自动化打包详解步骤

    可能是最简单的iOS自动化打包方式:无需手动配置证书,无需填写配置文件名称,更无需配置Bundle Identifer,总之无需很多繁琐配置,让打包流程一句命令完成!下面将会分享两种打包方式,一种是快速打包(打包时间就在一眨眼),一种是基于shenzhen(速度会比较慢),都实现了一行命令完成打包并上传蒲公英! 一:基于编译的打包 这种打包方式应该是目前所有打包方式中最快的,就是编译工程--找到.app文件--新建Payload文件夹--拷贝.app到Payload文件夹--压缩成zip--更改

  • 教你用Python脚本快速为iOS10生成图标和截屏

    简介 这两天更新完Xcode8之后发现Xcode对图标的要求又有了变化,之前用的一个小应用"IconKit"还没赶上节奏,已经不能满足Xcode8的要求了. 于是就想起来用Python自己做个脚本来生成图标. 其实这个脚本很早就写了,现在为了适应iOS10,就修改完善下,并且放到了 GitHub . 可以看看效果图: 代码: #encoding=utf-8 #by 不灭的小灯灯 #create date 2016/5/22 #update 2016/9/21 #support iOS

  • python自动化生成IOS的图标

    本文实例为大家分享了python自动化生成IOS的图标,供大家参考,具体内容如下 每次上架之前都要生成十几个图片感觉无聊麻烦,考虑使用脚本处理 脚本使用python 和一部分shell 处理的,python部分主要是使用PIL库处理图片,和调用shell脚本,shell 主要是操作文件 #coding=utf-8 import os ,threading from PIL import Image import subprocess import json class ImgManager(ob

  • 利用Python自动化生成爱豆日历详解

    目录 1.科普 2.爱豆日历 3.总结 本次内容有感于<Python编程快速上手-让繁琐工作自动化>. 根据书中的「处理Excel电子表格」章节内容,做出一份专属日历. 使用的模块为openpyxl,一个能读取和修改Excel电子表格的Pyhton模块. 实现自动化处理表格信息,摆脱无趣无味. 此外还有calendar模块,通过该模块生成日历信息. 最后利用openpyxl和calendar库,实现自动化生成爱豆日历. 1.科普 在进行代码操作前,简单对相关知识做个简单的学习. 一个Excel

  • Python自动化短视频生成脚本实现热门视频流水线生产

    目录 一.核心功能设计 二.实现步骤 1. 图片爬取 2. 图片统一格式大小 3. 视频合成 4. 截取背景音乐 5. 视频和背景音乐合并 一.核心功能设计 首先我看了网上那些视频营销号的视频,大多数都是围绕一个主题通过几张图片进行视频轮播展示并添加一些热门歌曲作为背景音乐. 知道了大概的思路,接下来我们可以通过以下几步进行实现: 通过关键字进行图片批量爬取 对爬取的图片进行筛选并批量进行大小resize统一 将统一大小的图片进行视频合成 根据选取的歌曲,截取合适的背景音乐 将视频和截取的背景音

  • 利用Python半自动化生成Nessus报告的方法

    0x01 前言 Nessus是一个功能强大而又易于使用的远程安全扫描器,Nessus对个人用户是免费的,只需要在官方网站上填邮箱,立马就能收到注册号了,对应商业用户是收费的.当然,个人用户是有16个IP限制,通过企业邮箱可以体验免费7天的Nessus专业版,IP无限制. Nessus激活码获取地址:https://www.tenable.com/products/nessus/activation-code 0x02 Nessus使用 登录后通过New Scan创建扫描任务,扫描完成后,我们即可

  • python自动化之如何利用allure生成测试报告

    Allure测试报告框架帮助你轻松实现"高大上"报告展示.本文通过示例演示如何从0到1集成Allure测试框架.重点展示了如何将Allure集成到已有的自动化测试工程中.以及如何实现报表的优化展示.Allure非常强大,支持多种语言多种测试框架,无论是Java/Python还是Junit/TestNG,其他语言或者框架实现的流程和本文一致,具体配置参照各语言框架规范 安装 安装allure Windows用户: scoop install allure    (需要先下载并安装Scoo

  • Python自动化之批量生成含指定数据的word文档

    目录 一.需求说明 二.开始动手动脑 三.总结 一.需求说明 在平时工作当中,经常需要处理文件,特别是Word,处理Word时会遇一类比较常见的场景:文档中大部分文字固定不变,小部分内容需要修改. 这时我们会机械的重复打开.修改.保存文档等一系列操作,内容少还可勉强接受,内容一旦多了,心里难免会心浮气躁. 今天我要给大家介绍一个秘密武器-docxtpl开发包,有了这个只需写一份模板,其他的都交给电脑自己进行. 首先需要你的电脑安装好了Python环境,并且安装好了Python开发工具. 如果你还

  • 基于Python实现自动化生成数据报表

    目录 前言 开发工具 环境搭建 主要代码 前言 不要在用手敲生成Excel数据报表了,用Python自动生成Excel数据报表!废话不多说 让我们愉快地开始吧~ 开发工具 Python版本: 3.6.4 相关模块: pandasxlwingsmatplotlib模块: xlwingsmatplotlib模块: matplotlib模块: 以及一些Python自带的模块. 环境搭建 安装Python并添加到环境变量,pip安装需要的相关模块即可. 原始数据如下,主要有水果蔬菜名称.销售日期.销售数

  • Python自动化办公之Word文档的创建与生成

    目录 保存生成 word 生成标题 生成段落 添加图片 添加表格 分页 上几章节我们主要学习了如何读取文章,而主要任务是读取文档中的文本信息,也就是字符串,而图片本身是不可读的文件所以并没有去读取图片.从今天开始将学习如何通过 python 脚本来自动生成一个 word 文档. 保存生成 word 在学习如何生成一个 word 文档之前,我们来看看如何保存生成 word 文件,因为马上就会用到. 使用方法: document_obj.save(文件地址) ---> /home/demo.docx

  • python为QT程序添加图标的方法详解

    Qt是一种基于C++的跨平台图形用户界面应用程序开发框架.如何跨平台?上到服务器上位机,下到嵌入式GUI,上天入地无所不能.Qt最早是由1991年由Qt Company开发,但是到2008年,Qt Company科技被诺基亚公司收购,是的,就是拥有着我们很多情怀的诺基亚.但在2012年,Qt又被Digia收购.等到了2014年,跨平台集成开发环境Qt Creator 3.1.0正式发布出来,至此,全面支持iOS.Android.WP,QT的时代开始逐步展开. 本文重点给大家介绍python为QT

  • 详解基于Android的Appium+Python自动化脚本编写

    1.Appium Appium是一个开源测试自动化框架,可用于原生,混合和移动Web应用程序测试, 它使用WebDriver协议驱动iOS,Android和Windows应用程序. 通过Appium,我们可以模拟点击和屏幕的滑动,可以获取元素的id和classname,还可以根据操作生成相关的脚本代码. 下面开始Appium的配置. appPackage和APPActivity的获取 任意下载一个app 解压 但是解压出来的xml文件可能是乱码,所以我们需要反编译文件. 逆向AndroidMan

随机推荐