首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用iconutil手动创建icns文件?

如何使用iconutil手动创建icns文件?
EN

Stack Overflow用户
提问于 2012-09-06 18:28:58
回答 18查看 115.2K关注 0票数 133

当我验证我的应用程序时,我会得到以下错误:

应用程序包不包含ICNS格式的图标,包含512x512512x512@2x映像。

我经常用Img2icns应用程序制作icns图标,直到今天,它一直正常工作。但是现在我得到了那个错误,没有办法让它起作用。我试图将两个PNG文件放在一起(512x5121024x1024)在Img2icns中,但是我总是得到这个错误。我还试着遵循Apple的OS人机界面指南中的说明,但是当我试图设置图标时,我得到了这个终端错误:

-bash:意外令牌“换行符”附近的语法错误

我不太擅长终端命令,所以我可能做错了什么。我写道:

代码语言:javascript
复制
iconutil -c icns </Users/myname/SDK Mac Apps/MyApp/grafica/icon.iconset>

如果有人能帮忙的话,我会非常感激的。谢谢,马西。

EN

回答 18

Stack Overflow用户

回答已采纳

发布于 2012-09-06 23:15:33

请查看以下说明(链接):

使用iconutil手动创建icns文件 iconutil命令行工具将iconset文件夹转换为部署就绪、高分辨率的icns文件.(通过在终端中输入man iconutil,您可以找到该工具的完整文档。)使用此工具还可以压缩生成的icns文件,因此不需要执行额外的压缩。 将一组图标转换为icns文件 将此命令输入终端窗口: iconutil -c icns <iconset filename> 其中,<iconset filename>是指向包含要转换为icns的图标集的文件夹的路径。除非您指定了如下所示的输出文件,否则输出将写入与iconset file相同的位置: iconutil -c icns -o <icon filename> <iconset filename>

换句话说,您需要用路径替换<iconset filename>

代码语言:javascript
复制
/Users/myname/SDK Mac Apps/MyApp/grafica/icon.iconset

由于路径包含空格,因此需要使用双引号,例如:

代码语言:javascript
复制
iconutil -c icns "/Users/myname/SDK Mac Apps/MyApp/grafica/icon.iconset"

此命令应正常工作。

票数 71
EN

Stack Overflow用户

发布于 2013-12-20 12:24:29

下面是一个脚本,用于将1024x1024 png (名为"Icon1024.png")转换为所需的icns文件。将其保存到一个名为"CreateICNS.src“的文件夹中,在该文件夹中,png文件位于终端"cd”的同一个文件夹中,并键入“CreateICNS.src源”来调用它:

代码语言:javascript
复制
mkdir MyIcon.iconset
sips -z 16 16     Icon1024.png --out MyIcon.iconset/icon_16x16.png
sips -z 32 32     Icon1024.png --out MyIcon.iconset/icon_16x16@2x.png
sips -z 32 32     Icon1024.png --out MyIcon.iconset/icon_32x32.png
sips -z 64 64     Icon1024.png --out MyIcon.iconset/icon_32x32@2x.png
sips -z 128 128   Icon1024.png --out MyIcon.iconset/icon_128x128.png
sips -z 256 256   Icon1024.png --out MyIcon.iconset/icon_128x128@2x.png
sips -z 256 256   Icon1024.png --out MyIcon.iconset/icon_256x256.png
sips -z 512 512   Icon1024.png --out MyIcon.iconset/icon_256x256@2x.png
sips -z 512 512   Icon1024.png --out MyIcon.iconset/icon_512x512.png
cp Icon1024.png MyIcon.iconset/icon_512x512@2x.png
iconutil -c icns MyIcon.iconset
rm -R MyIcon.iconset
票数 351
EN

Stack Overflow用户

发布于 2016-09-24 16:01:14

尽管使用各种脚本将高分辨率PNG图像转换为具有不同低分辨率副本的昴宿星图像似乎很方便(而且确实如此),但人们不应该忘记,这种自动调整大小将使明显地呈现出不完美的图像

降低分辨率-模糊图标!

我是说,我也喜欢imagemagick,但是它不是这个任务的合适工具!

相反,您应该始终从设计器(例如在SVG中)请求某种矢量格式的徽标。有了这个,您可以手动准备所有所需分辨率的完美PNG文件,然后制作一个.icns文件,这将使您的应用程序图标在每一个屏幕上看起来都很漂亮,从廉价的iPhone SE到最新iMac的高端Retina显示器。您可以使用Photoshop、GIMP或您选择的任何其他工具来生成这些PNG。

从2020年的最新苹果的人机界面指南开始,您应该准备以下PNG文件:

代码语言:javascript
复制
+---------------------+--------------------+--------------+
|      filename       | resolution, pixels | density, PPI |
+---------------------+--------------------+--------------+
| icon_16x16.png      | 16x16              |           72 |
| icon_16x16@2x.png   | 32x32              |          144 |
| icon_32x32.png      | 32x32              |           72 |
| icon_32x32@2x.png   | 64x64              |          144 |
| icon_128x128.png    | 128x128            |           72 |
| icon_128x128@2x.png | 256x256            |          144 |
| icon_256x256.png    | 256x256            |           72 |
| icon_256x256@2x.png | 512x512            |          144 |
| icon_512x512.png    | 512x512            |           72 |
| icon_512x512@2x.png | 1024x1024          |          144 |
+---------------------+--------------------+--------------+

准备好所有PNG文件后,将它们放在具有.iconset扩展名(例如Logos.iconset)的某个目录中,然后从Terminal执行以下操作

代码语言:javascript
复制
iconutil --convert icns Logos.iconset

如果在执行此命令后没有错误,那么所有的文件都被正确地处理了,并且您在同一个目录中得到了Logos.icns文件,其中包含了所有适合现代屏幕的应用程序的漂亮、清晰的标识。

票数 34
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12306223

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档