给mac上的app更换图标
用自动操作(Automator.app)生成的app,其默认图标如下,有时我们需要给它一个别的图标,就得更换app图标。
命令行自制图标
无效方法:超级右键的图片转成图标
我试验了以下,用超级右键的图片转成图标
功能所生成icns文件,将app图标替换成此icns后(使用的是下文提到的有效的方法:显示包内容-更换icns),无法变成自制图标,而是会变成
有效方法:用命令行
macOS上app使用图标的文件格式是.icns
,将可以用命令把png图片转换成icns图标。
打开终端执行如下命令
png2icon()
{
local source_image="$1" # 准备一个png
# 必需是png格式
# 最好是正方形,不然生成图标时会拉伸成正方形
# 分辨率最好为1024*1024,这个图片为macOS系统规范的最大格式,能让后续生成的图标尽可能清晰
if [ ! -r "$source_image" ]; then
echo $source_image not found
return
elif [ ! "${source_image}" =~ \.png$ ]; then
echo $source_image is not png
return
fi
cd $(dirname $source_image)
local filename=$(basename $source_image)
filename="${filename/.png/}"
local iconset_dir=$filename.iconset
mkdir $iconset_dir # 必须以.iconset后缀结尾
# 生成不同尺寸的Png图片
sips -z 16 16 $source_image --out $iconset_dir/icon_16x16.png
sips -z 32 32 $source_image --out $iconset_dir/icon_16x16@2x.png
sips -z 32 32 $source_image --out $iconset_dir/icon_32x32.png
sips -z 64 64 $source_image --out $iconset_dir/icon_32x32@2x.png
sips -z 128 128 $source_image --out $iconset_dir/icon_128x128.png
sips -z 256 256 $source_image --out $iconset_dir/icon_128x128@2x.png
sips -z 256 256 $source_image --out $iconset_dir/icon_256x256.png
sips -z 512 512 $source_image --out $iconset_dir/icon_256x256@2x.png
sips -z 512 512 $source_image --out $iconset_dir/icon_512x512.png
sips -z 1024 1024 $source_image --out $iconset_dir/icon_512x512@2x.png
# 生成icns图片
iconutil -c icns $iconset_dir -o $filename.icns
}
png2icon <待转换的png文件>
通过预览打开 app.icns 图片,可以查看图片包含了多个尺寸的Png图片
更换app图标
更换为自制图标
无效的方法:在显示简介中粘贴自制icns
下述方法对安装的app和自动操作(Automator.app)生成的app都无效:
在Finder中,选中自制的图标(.icns文件),按ctrl+c;在Finder中选中软件名称.app
,右键,点显示简介
,点击上图红框处的图标,按ctrl+V。
这样B.app
的图标并不会变成自制图标,而是会变成
有效的方法:显示包内容-更换icns
更换包内容中的icns
在Finder中,选中待更换图标的app,右键菜单中,点显示包内容
。将软件名.app/Contents/Resources/xxxx.icns
改名为xxx-backup.icns
(自动操作(Automator.app)生成的app其图标名称为AutomatorApplet.icns,下载的app的图标名称是别的),然后将自己制作的icns复制到软件名.app/Contents/Resources
,并更名为AutomatorApplet.icns
注:上述操作可以用终端完成
cd <软件名>.app/Contents/Resources/
mv xxx.icns xxx-backup.icns # 自动操作(Automator.app)生成的app其图标名称为AutomatorApplet.icns,下载的app的图标名称是别的
cp <.icns文件的路径> AutomatorApplet.icns
触发app加载新icns
然后,还需要一番操作触发这个app去加载新的icns,操作如下:
在Finder中,选中待更换图标的app,右键菜单中,点显示简介
,然后在Finder中ctrl+c复制任意图片(.png)或图标(.icns)(可以是之前复制进来的自制icns),点击下图红框区域,然后按ctrl+v。
然后,图标会变成了下图的样子。而后点击红框区域,然后按delete
键,
图标立即就会变成之前自己制作的icns。
更换为另一个app的图标
在Finder中选中A.app
,右键,点显示简介
,点击上图红框处的图标,按ctrl+c;
然后,在Finder中选中B.app
,右键,点显示简介
,点击上图红框处的图标,按ctrl+V。
这样B.app
的图标就换成了A.app
的图标。
该方法适用于A或B是安装的app和用自动操作(Automator.app)生成的app。