macos - iconutil错误: "Unsupported image format"

标签 macos bash homebrew libpng iconutil

我一直在尝试使用 iconutil 从文件夹“folderthumb.iconset”内的 .png 图像生成 .icns 图标,使用以下命令:

iconutil -c icns folderthumb.iconset

当源 png 具有 Alpha 透明度时,一切都会顺利进行。但是,当 PNG 不透明时(来自 sips,hasAlpha=no),iconutil 返回错误:

Unsuported image format

我的 libpng 是 v1.6,与 brew 一起安装。

有谁能告诉我如何解决这个问题吗?

最佳答案

旧版本的 iconutil 不要求 png 文件有 alpha channel ,随 OS X 10.11 分发的 iconutil 版本(或者它是否随最新的 Xcode 一起提供?我不确定...)则需要。

如果您的图标带有透明部分,这应该没问题,因为我希望所有图形工具在导出为 png 时都包含 Alpha channel 。但是,如果您有一个完全不透明的图标,大多数工具和应用程序在导出为 png 时会删除 Alpha channel 。

以下是我解决此问题的方法:我安装了 ImageMagick(例如通过 Mac OS Ports),然后使用 ImageMagick 的命令行工具 convert 添加 Alpha channel 并将颜色空间设置为 sRGB(即由 iconutil 推荐):

convert input.png -alpha Set -colorspace sRGB -define png:format=png32 output.png

如果您对图标集文件夹中的所有图标执行此操作,则 iconutil 应该不再返回错误。

关于macos - iconutil错误: "Unsupported image format",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36484266/

相关文章:

cocoa - NSMenuItem-setTarget : Does it retain the target?

linux - Bash 和 conda : Installing non-conda packages in conda environment with executable bash script

python - hombrew 升级后 pip3 消失了

xcode - OS X 10.x 向后兼容性的最佳实践

macos - pp(perl 编译器)问题 - 仍然有依赖性

linux - Ubuntu 终端打开文件后挂起

opencv - 如何使用 Homebrew 软件安装具有 VTK 功能的 opencv3?

erlang - 尝试在 Mac OS X 上使用 Homebrew 安装 RabbitMQ 时无法编译 Erlang R14B03

macos - 在 64 位环境中编译 32 位 OS X 二进制文件

bash - find exec 命令中的变量