40 lines
1.3 KiB
Python
Executable File
40 lines
1.3 KiB
Python
Executable File
#!/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() |