#!/usr/bin/env python3 import os import subprocess def create_iconset(): # 创建临时iconset目录 if not os.path.exists('icons/tmp.iconset'): os.makedirs('icons/tmp.iconset') # 定义需要的图标尺寸 icon_sizes = [16, 32, 64, 128, 256, 512, 1024] for size in icon_sizes: # 常规分辨率 output_path = f'icons/tmp.iconset/icon_{size}x{size}.png' subprocess.run(['sips', '-s', 'format', 'png', '-z', str(size), str(size), 'icons/logo.svg', '--out', output_path], check=True) # 高分辨率(@2x) if size <= 512: output_path = f'icons/tmp.iconset/icon_{size}x{size}@2x.png' subprocess.run(['sips', '-s', 'format', 'png', '-z', str(size*2), str(size*2), 'icons/logo.svg', '--out', output_path], check=True) # 使用iconutil生成.icns文件 subprocess.run(['iconutil', '-c', 'icns', 'icons/tmp.iconset', '-o', 'icons/logo.icns'], check=True) # 清理临时文件 subprocess.run(['rm', '-rf', 'icons/tmp.iconset'], check=True) if __name__ == '__main__': create_iconset()