Иконки MacOS: объединение трех разных рисунков в один файл ICNS

Я создал в Sketch три разные версии одного значка Mac, начиная от наименее детализированной (маленькая версия) для 16x16 и заканчивая наиболее детализированной (крупная версия) для 512x512. Плагин , который я использую в Sketch, экспортирует артборд в файл icns, который включает все необходимые для реализации разрешения. Это полезно, потому что реализация значков Mac позволяет использовать только один файл. Однако я хочу иметь возможность использовать уменьшенную версию дизайна для 16x16/@2x, 32x32/@2x; средняя версия для 128x128/@2x; и большая версия для 512x512/@2x. Но мне трудно/нет ресурсов для объединения всех этих версий в один файл icns.

Я нахожу это довольно обескураживающим, поскольку HIG рекомендует разрабатывать менее детализированные версии того же дизайна для меньших разрешений, насколько я понимаю.

Есть ли у кого-нибудь советы, ресурсы или обходной путь? Спасибо!

Ответы (1)

Я понятия не имею о Sketch (я им не пользуюсь), но вы можете создать файл ICNS из терминала...

Поместите все свои значки в папку, в которой нет ничего, кроме отдельных файлов изображений. Все изображения должны быть названы в соответствии с соглашением:

icon_<sizeinpoints>x<sizeinpoints>[@<scale>].png

Папка может называться как угодно, но должна иметь расширение .iconset(странно, чтобы папка имела расширение, да, но именно так система узнает, что это набор значков).

Итак, ваша папка должна выглядеть примерно так:

MyIcons.iconset
|- icon_16x16.png
|- icon_16x16@2x.png
|- icon_32x32.png
|- icon_32x32@2x.png
|- icon_128x128.png
|- icon_128x128@2x.png
|- icon_512x512.png
|- icon_512x512@2x.png

Затем из терминала запустите iconutilкоманду...

iconutil -c icns <iconset filename>

Где <iconset filename>находится путь к папке iconset (Совет: вы можете перетащить папку из Finder в терминал, и он вставит правильный путь).

Это создаст для вас файл ICNS с тем же именем и в том же месте, что и папка набора значков, из которой вы его создали.

Вы можете прочитать больше здесь:

Ха! На самом деле я наткнулся на это решение за долю секунды до того, как вы ответили. Очень полезно - спасибо! Вот на что я ссылался: stackoverflow.com/questions/12306223/…
Не беспокойтесь, рад, что вы нашли решение!