要实现这个功能,你可以使用Python的PIL库来处理图片,并使用json库来生成Contents.json文件。以下是一个示例代码:
from PIL import Image
import json
def generate_app_icons(image_path, output_path):
# 定义不同尺寸的App Icon大小
sizes = [
(20, 20),
(29, 29),
(40, 40),
(58, 58),
(60, 60),
(76, 76),
(80, 80),
(87, 87),
(120, 120),
(152, 152),
(167, 167),
(180, 180),
(1024, 1024)
]
# 打开原始图片
image = Image.open(image_path)
# 创建一个文件夹用于存放App Icon文件
import os
iconset_path = os.path.join(output_path, "AppIcon.appiconset")
os.makedirs(iconset_path, exist_ok=True)
# 生成不同尺寸的App Icon
for size in sizes:
icon = image.resize(size)
icon_path = os.path.join(iconset_path, f"Icon-{size[0]}x{size[1]}.png")
icon.save(icon_path)
# 生成Contents.json文件
contents = {
"images": [],
"info": {
"version": 1,
"author": "xcode"
}
}
for size in sizes:
icon = {
"size": f"{size[0]}x{size[1]}",
"idiom": "iphone",
"filename": f"Icon-{size[0]}x{size[1]}.png",
"scale": "1x"
}
contents["images"].append(icon)
icon = {
"size": f"{size[0]}x{size[1]}",
"idiom": "iphone",
"filename": f"Icon-{size[0]}x{size[1]}@2x.png",
"scale": "2x"
}
contents["images"].append(icon)
icon = {
"size": f"{size[0]}x{size[1]}",
"idiom": "iphone",
"filename": f"Icon-{size[0]}x{size[1]}@3x.png",
"scale": "3x"
}
contents["images"].append(icon)
contents_path = os.path.join(iconset_path, "Contents.json")
with open(contents_path, "w") as f:
json.dump(contents, f, indent=4)
# 使用示例
generate_app_icons("path/to/your/image.png", "path/to/output")
在上面的示例代码中,你需要将"path/to/your/image.png"
替换为你的原始图片路径,将"path/to/output"
替换为你想要输出的文件夹路径。运行代码后,你将在指定的输出文件夹中找到生成的App Icon文件和Contents.json文件。