Ошибка iconutil: "Неподдерживаемый формат изображения"

Я пытался использовать iconutil для создания значков.icns из изображений.png в папке "folderthumb.iconset", с помощью следующей команды:

iconutil -c icns folderthumb.iconset

Все идет хорошо, когда исходный png имеет альфа-прозрачность. Однако, когда PNG непрозрачны (из sips, hasAlpha=no), iconutil возвращает ошибку:

Неподдерживаемый формат изображения

Мой libpng v1.6, установлен с brew,

Кто-нибудь подсказывает, как решить эту проблему?

1 ответ

Решение

В более старых версиях iconutil не требовалось, чтобы файлы png имели альфа-канал, а версия iconutil, распространяемая с OS X 10.11 (или она поставлялась с недавним Xcode? Я не уверен...), делает это.

Если у вас есть значки с прозрачными частями, это не должно быть проблемой, потому что я ожидаю, что все графические инструменты будут включать альфа-канал при экспорте в png. Однако, если у вас полностью непрозрачный значок, большинство инструментов и приложений удаляют альфа-канал при экспорте в png.

Вот как я решил это: я установил ImageMagick (например, через порты Mac OS), затем использовал инструмент командной строки ImageMagick convert чтобы добавить альфа-канал и установить цветовое пространство sRGB (что рекомендовано iconutil):

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

Если вы сделаете это для всех значков в папке с набором значков, iconutil не должен больше возвращать ошибку.

Другие вопросы по тегам