Skip to content

Latest commit

 

History

History
123 lines (89 loc) · 3.18 KB

制作ICON文件.md

File metadata and controls

123 lines (89 loc) · 3.18 KB
title date
制作ICON文件(ico/icns)
2021-04-14 07:51:27 UTC

生成Icon文件(.svg, .png, .ico, .icns)

SVG.ico/.icns

NodeJS:

svg-app-icon,推荐。

npx svg-app-icon < logo.svg

PNG.icns

MacOS

使用官方提供,系统自带工具 sipsiconutil

  1. 通过 sips 生成不同大小 png 文件,放在同一文件夹
sips -z 16 16     icon.png --out iconset/icon_16x16.png
sips -z 32 32     icon.png --out iconset/icon_16x16@2x.png
sips -z 32 32     icon.png --out iconset/icon_32x32.png
sips -z 64 64     icon.png --out iconset/icon_32x32@2x.png
sips -z 128 128   icon.png --out iconset/icon_128x128.png
sips -z 256 256   icon.png --out iconset/icon_128x128@2x.png
sips -z 256 256   icon.png --out iconset/icon_256x256.png
sips -z 512 512   icon.png --out iconset/icon_256x256@2x.png
sips -z 512 512   icon.png --out iconset/icon_512x512.png
sips -z 1024 1024 icon.png --out iconset/icon_512x512@2x.png
  1. 通过 iconutil 使用上述 png 生成 icns 文件
iconutil -c icns iconset -o logo.icns

NodeJS

@fiahfy/icns-convert,可以直接从单张 .png 生成 .icns 文件,推荐。

Python

  1. 通过 pillow(仅支持在 MacOS 直接生成 icns 文件)生成 png
from PIL import Image

with Image.open('icon.png') as icon:
    icon.save('iconset/icon_16x16.png', size=(16, 16))
    icon.save('iconset/icon_16x16@2x.png', size=(32, 32))
    icon.save('iconset/icon_32x32.png', size=(32, 32))
    icon.save('iconset/icon_32x32@2x.png', size=(64, 64))
    icon.save('iconset/icon_128x128.png', size=(128, 128))
    icon.save('iconset/icon_128x128@2x.png', size=(256, 256))
    icon.save('iconset/icon_256x256.png', size=(256, 256))
    icon.save('iconset/icon_256x256@2x.png', size=(512, 512))
    icon.save('iconset/icon_512x512.png', size=(512, 512))
    icon.save('iconset/icon_512x512@2x.png', size=(1024, 1024))

PNG.ico

Python:

pillow

from PIL import Image

with Image.open('icon.png') as icon:
    icon.save('icon.ico', size=(128, 128)) # 大小根据需求自行调整

NodeJS:

@shockpkg/icon-encoder

SVGPNG

Python:

cairosvg

# 安装 cairosvg
pip install cairosvg

# 直接在命令行调用
cairosvg
  -f png # 输出 png 格式
  --output-width 1024 # 输出图片宽度
  --output-height 1024 # 输出图片高度
  -o icon.png # 输出文件名
  -W 100 # svg 文件宽度,viewBox
  -H 100 # svg 文件高度
  icon.svg # 指定 svg 文件

NodeJS:

sharp