我一直在尝试使用iconutil从文件夹"folderthumb.iconset"内的.png图像生成.icns图标,使用以下命令:
iconutil -c icns folderthumb.iconset
当源png具有alpha透明度时,一切都很顺利。然而,当PNG不透明时(从sips,hasAlpha=no),iconutil返回错误:
不支持的图像格式
我的libpng是v1.6,安装了brew
。
有人告诉我如何解决这个问题吗?
旧版本的iconutil不需要png文件具有alpha通道,而随OS X 10.11分发的iconutil版本(或者它是否附带了最新的Xcode?我不确定…)需要。
如果你有带有透明部分的图标,这应该没有问题,因为我希望所有图形工具在导出到png时都包括alpha通道。但是,如果您有一个完全不透明的图标,大多数工具和应用程序在导出到png时都会删除alpha通道。
以下是我解决这个问题的方法:我安装了ImageMagick(例如通过Mac OS端口),然后使用ImageMagick的命令行工具convert
添加alpha通道并将颜色空间设置为sRGB(这是iconutil推荐的):
convert input.png -alpha Set -colorspace sRGB -define png:format=png32 output.png
如果对iconset文件夹中的所有图标执行此操作,则iconutil将不再返回错误。