python修改app_Python 设置 AppIcon

import os

import json

import shutil

from math import trunc

def generate_ios_icons(xcode_project_path, icons_dir):

# 从 Xcode 11 工程 Images.xcassets/AppIcon.appiconset/Contents.json 转换生成

# 排列顺序调整为与 Unity 生成的一致,方便自动修改后比较文件内容

images_template = [

{

"size": 57,

"idiom": "iphone",

"scale": 1

},

{

"size": 57,

"idiom": "iphone",

"scale": 2

},

{

"size": 60,

"idiom": "iphone",

"scale": 2

},

{

"size": 60,

"idiom": "iphone",

"scale": 3

},

{

"size": 29,

"idiom": "iphone",

"scale": 1

},

{

"size": 29,

"idiom": "iphone",

"scale": 2

},

{

"size": 29,

"idiom": "iphone",

"scale": 3

},

{

"size": 40,

"idiom": "iphone",

"scale": 2

},

{

"size": 40,

"idiom": "iphone",

"scale": 3

},

{

"size": 20,

"idiom": "iphone",

"scale": 2

},

{

"size": 20,

"idiom": "iphone",

"scale": 3

},

{

"size": 29,

"idiom": "ipad",

"scale": 1

},

{

"size": 29,

"idiom": "ipad",

"scale": 2

},

{

"size": 40,

"idiom": "ipad",

"scale": 1

},

{

"size": 40,

"idiom": "ipad",

"scale": 2

},

{

"size": 50,

"idiom": "ipad",

"scale": 1

},

{

"size": 50,

"idiom": "ipad",

"scale": 2

},

{

"size": 72,

"idiom": "ipad",

"scale": 1

},

{

"size": 72,

"idiom": "ipad",

"scale": 2

},

{

"size": 76,

"idiom": "ipad",

"scale": 1

},

{

"size": 76,

"idiom": "ipad",

"scale": 2

},

{

"size": 20,

"idiom": "ipad",

"scale": 1

},

{

"size": 20,

"idiom": "ipad",

"scale": 2

},

{

"size": 83.5,

"idiom": "ipad",

"scale": 2

},

{

"size": 1024,

"idiom": "ios-marketing",

"scale": 1

}

]

appicon_dir = os.path.join(xcode_project_path, 'Unity-iPhone/Images.xcassets/AppIcon.appiconset')

cleared = False

images = []

for image_template in images_template:

icon_name = '{0}x{0}.png'.format(trunc(image_template['size'] * image_template['scale']))

icon_path = os.path.join(icons_dir, icon_name)

if not os.path.exists(icon_path):

continue

if not cleared:

for root, dirs, files in os.walk(appicon_dir):

for f in files:

os.unlink(os.path.join(root, f))

for d in dirs:

shutil.rmtree(os.path.join(root, d))

cleared = True

shutil.copy2(icon_path, appicon_dir)

image = {'filename': icon_name, 'idiom': image_template['idiom'],

'scale': '{0}x'.format(image_template['scale']), 'size': '{0}x{0}'.format(image_template['size'])}

images.append(image)

contents = {

'images': images,

'info': {

'author': 'xcode',

'version': 1

},

'properties': {

'pre-rendered': False

}

}

contents_path = os.path.join(xcode_project_path, 'Unity-iPhone/Images.xcassets/AppIcon.appiconset/Contents.json')

with open(contents_path, 'w', encoding='utf-8') as openfile:

json.dump(contents, openfile, indent=4, sort_keys=False, ensure_ascii=False)

# 36x36.png src/main/res/drawable-ldpi/app_icon.png

# 48x48.png src/main/res/drawable-mdpi/app_icon.png

# 72x72.png src/main/res/drawable/app_icon.png

# 72x72.png src/main/res/drawable-hdpi/app_icon.png

# 96x96.png src/main/res/drawable-xhdpi/app_icon.png

# 144x144.png src/main/res/drawable-xxhdpi/app_icon.png

# 192x192.png src/main/res/drawable-xxxhdpi/app_icon.png

def generate_android_icons(gradle_project_path, icons_dir):

icons_template = [

{

'size': 36,

'name': 'drawable-ldpi'

},

{

'size': 48,

'name': 'drawable-mdpi'

},

{

'size': 72,

'name': 'drawable'

},

{

'size': 72,

'name': 'drawable-hdpi'

},

{

'size': 96,

'name': 'drawable-xhdpi'

},

{

'size': 144,

'name': 'drawable-xxhdpi'

},

{

'size': 192,

'name': 'drawable-xxxhdpi'

},

]

for icon_template in icons_template:

icon_name = '{0}x{0}.png'.format(trunc(icon_template['size']))

icon_path = os.path.join(icons_dir, icon_name)

if not os.path.exists(icon_path):

continue

appicon_dir = os.path.join(gradle_project_path, 'src/main/res/{0}'.format(icon_template['name']))

if not os.path.exists(appicon_dir):

continue

appicon_path = os.path.join(appicon_dir, 'app_icon.png')

print(icon_path, appicon_path)

shutil.copy2(icon_path, appicon_path)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用pyinstaller可以将Python脚本打包成可执行文件,包括Windows、Linux和Mac OS X等平台。 下面是使用pyinstaller将Python脚本打包成app的步骤: 1. 安装pyinstaller 使用pip安装pyinstaller: ``` pip install pyinstaller ``` 2. 打包Python脚本 打开命令行窗口,进入Python脚本所在的目录,执行以下命令: ``` pyinstaller -w -F your_script.py ``` 参数解释: - `-w`:表示不显示命令行窗口,只显示图形界面。 - `-F`:表示将所有依赖项打包成一个单独的可执行文件,方便部署。 打包完成后,会在同级目录下生成`dist`目录,里面包含了生成的可执行文件。 3. 将可执行文件打包成app 对于Mac OS X平台,需要将可执行文件打包成app。 打开终端,进入`dist`目录,执行以下命令: ``` mkdir your_app.app/Contents/MacOS mv your_script your_app.app/Contents/MacOS/your_app ``` 将`your_script`替换成可执行文件的名称,将`your_app`替换成你的app名称。 然后进入`your_app.app/Contents/`目录,创建`Info.plist`文件,文件内容如下: ``` <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>CFBundleExecutable</key> <string>your_app</string> <key>CFBundleName</key> <string>your_app</string> <key>CFBundleIconFile</key> <string>icon.icns</string> <key>CFBundleIdentifier</key> <string>com.your_company.your_app</string> </dict> </plist> ``` 其中`CFBundleExecutable`、`CFBundleName`、`CFBundleIconFile`、`CFBundleIdentifier`分别表示可执行文件、app名称、app图标和app唯一标识符。 最后将图标文件`icon.icns`放在`your_app.app/Contents/Resources/`目录下,就可以双击运行app了。 注:对于Windows和Linux平台,不需要打包成app,直接使用生成的可执行文件即可。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值