1 .icns是啥?

1.1 找到一个.icns

  • 打开访达 >> 应用程序
  • 随便选取一个.app(例如App Store.app),右键菜单点击显示包内容
  • 找到Contents/Resources/AppIcons.icns

1.2 看看.icns里有什么

将1.1找到的的AppIcon.icns用Mac自带的预览应用打开,如下图

我的Mac系统是macOS Big Sur 11.2.1,可以看到内部有4个元素,我们逐个将它们导出,比如说/users/xxx/desktop/Logo(后文涉及到执行终端命令的,默认都是在这个路径下操作,不再重复说明)。

  • 选中1个元素,右键菜单点击导出为
  • 在弹窗中选择导出路径、格式(我一般选PNG,并勾选Alpha透明通道)
  • 点击存储

找到导出的文件,查看文件信息,如下图。可以看到,关键信息是分辨率、尺寸,这在后面讲生成.icns时要用到。

通过上面的方法,可以知道这4个导出文件的关键信息分别是

尺寸 分辨率
256x256 144x144
128x128 72x72
32x32 144x144
16x16 72x72

分辨率是不是有点@2x的意思?关于Mac的屏幕特性,与本文主题关系不大,这里不再赘述。

2 制作一个.icns

2.1 生成所需的一组.png图片

先准备一张尺寸1024x1024、分辨率144x144的原始图片,如下图(我用的是终端导出的png,并经过反相处理)

用原始图片做素材,生成一组特定尺寸&分辨率的png图片,可以用Mac自带的预览应用,也可以用PS,这里介绍用终端命令的方法。

生成新图片用到的命令介绍:

# 命令格式:sips -z 新图片宽度 新图片高度 原图片名 --out 临时.iconset/新图片完整名
# 举个栗子:sips -z 32 32 pic.png --out tmp.iconset/1.png

网上一般会推荐生成下面10张图片,可能是基于比较旧版本的macOS原因?

# 全部拷贝到命令行回车执行,执行结束之后去tmp.iconset查看十张图片是否生成好
sips -z 16 16     pic.png --out tmp.iconset/icon_16x16.png
sips -z 32 32     pic.png --out tmp.iconset/icon_16x16@2x.png
sips -z 32 32     pic.png --out tmp.iconset/icon_32x32.png
sips -z 64 64     pic.png --out tmp.iconset/icon_32x32@2x.png
sips -z 128 128   pic.png --out tmp.iconset/icon_128x128.png
sips -z 256 256   pic.png --out tmp.iconset/icon_128x128@2x.png
sips -z 256 256   pic.png --out tmp.iconset/icon_256x256.png
sips -z 512 512   pic.png --out tmp.iconset/icon_256x256@2x.png
sips -z 512 512   pic.png --out tmp.iconset/icon_512x512.png
sips -z 1024 1024   pic.png --out tmp.iconset/icon_512x512@2x.png

毕竟参照macOS Big Sur 11.2.1的.icns内部情况,下面4张已经可以满足需求了

sips -z 16 16 pic.png --out tmp.iconset/16x16.png
sips -z 32 32 pic.png --out tmp.iconset/32x32.png
sips -z 128 128 pic.png --out tmp.iconset/128x128.png
sips -z 256 256 pic.png --out tmp.iconset/256x256.png

2.2 用.iconset生成.icns

iconutil命令从一组图片生成.icns

# 命令格式:iconutil -c icns 临时.iconset -o 名字.icns
# 举个栗子:iconutil -c icns tmp.iconset -o logo.icns

最终效果如下图

后记

  • long time ago,制作.icns需要Icon Composer,而又是集成在Xcode内的;
  • 后来,Xcode不再内置Icon Composer,需要通过Xcode->Open Develop Tool->More Develop Tools->下载GraphicsTools,里面会包含Icon Composer;
  • 而现在,还是用终端命令比较简单方便;

技术是需要与时俱进、不断更新的。
我们自己也是。

mac下生成.icns图标相关推荐

  1. 如何制作mac下的icns图标

    在 Mac 下制作 icns 图标的步骤如下: 准备图标文件:需要准备一些不同尺寸的图标文件,比如 16x16 像素.32x32 像素.128x128 像素等.可以使用 Photoshop 或者其他图 ...

  2. 使用mac电脑生成 icns图标

    1. 首先将你需要转换格式图片放在目标文件夹下,我这里需要转换格式的图片名称为 logo.png: 2. 新建一个文件件,命名为 以.iconset 结尾,我这里将新建文件夹重命名为 temp.ico ...

  3. icns文件怎么打开_Mac快速生成icns图标文件 | kTWO-个人博客

    摘要 本文主要介绍如何在mac电脑下生成icns文件,众所周知,icns文件是mac电脑上的图标文件,但是这个文件的生成却是十分的繁琐,并且网上的生成脚本五花八门,着实让人头大,本文介绍什么味icns ...

  4. MAC下 生成安卓签名证书.keystore文件【详细】

    在安卓打包.APK文件的过程中,是需要选择一个. keystore 即安卓数字签名证书.那今天我们就来看看这个,证书是怎么从无到有,一步步的生成的. windows平台生成证书的方法,点击去看看 检查 ...

  5. 借助普通图片生成 icns 图标文件

    周末给女朋友做了一个医学影像 DICOM 转 NIFTI 的工具,需要用到 icns 图标,让软件看着更"正规"一些,在网上搜索了一下,发现一个不错的方案,适用于 Linux/Un ...

  6. MAC下生成密钥,并使用ssh密钥登录

    步骤一:打开终端,输入: ssh-keygen -t rsa -C "youremail@qq.com" 一路欢快的回车,所有默认都不用改,就可以生成密钥了. 引号内是你唯一Ema ...

  7. MAC下Burpsuite设置图标启动

    文章目录 1.打开自动操作 2.新建文稿 3.选择应用程序 4.运行Shell脚本 5.可以选择右上角运行进行通过测试 6.没问题就command+s选择应用程序保存并自定义名字 7.在应用程序找到它 ...

  8. Mac 下生成keystore以及获得数字签名

    ZlindeMac-mini:iwatchtecher zlinsun$ cd /Library/Java/Home/bin/ ZlindeMac-mini:bin zlinsun$ keytool ...

  9. mac下生成文件目录树

    基本使用 在终端中输入以下内容: 安装tree: brew install tree 进入文件夹:cd 文件夹名称 生成目录树: tree tree的其他常用方法 显示所有的文件结构:tree -a ...

最新文章

  1. Centos 7.2安装FTP服务并进行相关设置
  2. 可通过http获取远端服务信息_微服务基础——厉害了!API网关
  3. axis WebServices 完美调用天气预报,查询、显示 代码!
  4. python 多线程笔记(6)-- 闭包
  5. Java EE 6测试第二部分– Arquillian和ShrinkWrap简介
  6. HDU 2222 Keywords Search
  7. wampserver php扩展openssl 不可用_PHP基础及WAMP集成基础
  8. Office2010翻译无处不在
  9. php和mysql一起_PHP和MYSQL数据库合理且有效的结合在一起_MySQL
  10. GT决赛第二次讨论会议
  11. ios显示gif格式图片
  12. 图像分割学习笔记_1(opencv自带meanshift分割例子)
  13. kali linux添加环境变量
  14. 对.Net 垃圾回收的C#编程相关方面(Finalize 和Dispose(bool disposing)和 Dispose())的一些理解体会(转)...
  15. EXCLE为什么双击横杠日期才能变成斜杠日期
  16. Openssh rpm 包制作
  17. 【开发日常】【Makefile】编译时如何将警告(warning)视为错误(error)?
  18. VSCode设置网页代码实时预览
  19. MySQL 5.6.22绿色版安装
  20. plc和c语言和cnc,CNC是什么意思? CNC 和 PLC的区别?

热门文章

  1. 修改Avaya IP-Office电话交换机出厂自带的提示语音内容
  2. 三大常用个人邮箱 163 Gmail QQMail之用户体验分析
  3. npm 及 webpack打包工具
  4. java 实现限流器,可用于Rest接口请求处理 | Java工具类
  5. 小程序——软件技术框架
  6. linux 网络管理 pdf,Windows与Linux网络管理与维护 PDF扫描版[194MB]
  7. 1.两数之和(python)
  8. 对于多目标跟踪论模型CTracker的解析
  9. openlayers 地图添加比例尺
  10. Android开发 Studio4.0 APP logo 适配