Введение
Формат изображения Apple Icon (.icns) — формат иконки, используемый в macOS от Apple Inc. Он поддерживает иконки размером 16 × 16, 32 × 32, 48 × 48, 128 × 128, 256 × 256, 512 × 512 пикселей в масштабе 1x и 2x, с альфа-каналами глубиной 1 и 8 бит, а также различные состояния изображения (например, открытые и закрытые папки). Операционная система может масштабировать иконки фиксированного размера и отображать их в любом промежуточном размере. Начиная с macOS 11, для пользовательских значков macOS предпочтительным форматом файлов являются каталоги ресурсов.
The Apple Icon Image format (. icns) is an icon format used in Apple Inc.'s macOS. It supports icons of 16 × 16, 32 × 32, 48 × 48, 128 × 128, 256 × 256, 512 × 512 points at 1x and 2x scale, with both 1 and 8 bit alpha channels and multiple image states (example: open and closed folders). The fixed size icons can be scaled by the operating system and displayed at any intermediate size. As of macOS 11, asset catalogs are the preferred file format for macOS custom icons instead.
Структура файла
Формат файла состоит из 8-байтового заголовка, за которым следует любое количество иконок.
Данные иконки
Оффсет Размер Назначение 0 4 Тип иконки, см. OSType ниже. 4 4 Длина данных в байтах (включая тип и длину), старший байт первый 8 Данные иконки (переменная длина)
Типы икон
Тип OSType Длина (байты) Размер (пиксели) Поддерживаемая версия ОС Описание 128 32×32 1.0 Монохромная иконка 1 бит 256 32×32 6.0 Монохромная иконка 1 бит с маской 1 бит 48 16×12 6.0 Монохромная иконка 1 бит с маской 1 бит 96 16×12 7.0 Иконка 4 бита 192 16×12 7.0 Иконка 8 бит 64 16×16 6.0 Монохромная иконка 1 бит с маской 1 бит 128 16×16 7.0 Иконка 4 бита 256 16×16 7.0 Иконка 8 бит варьируется (768) 16×16 8.5 Иконка RGB 24 бита 256 16×16 8.5 Маска 8 бит 512 32×32 7.0 Иконка 4 бита 1024 32×32 7.0 Иконка 8 бит варьируется (3072) 32×32 8.5 Иконка RGB 24 бита 1024 32×32 8.5 Маска 8 бит 576 48×48 8.5 Монохромная иконка 1 бит с маской 1 бит 1152 48×48 8.5 Иконка 4 бита 2304 48×48 8.5 Иконка 8 бит варьируется (6912) 48×48 8.5 Иконка RGB 24 бита 2304 48×48 8.5 Маска 8 бит варьируется (49152 + 4) 128×128 10.0 Иконка RGB 24 бита 16384 128×128 10.0 Маска 8 бит варьируется 16x16 10.7 Формат JPEG 2000 или PNG или иконка RGB 24 бита варьируется 32x32 10.7 Формат JPEG 2000 или PNG или иконка RGB 24 бита или "шаблон". Инфо-бинарный plist. Использование неизвестно (похоже, используется только поле имени). Вложенный файл "шаблон" icns. Использование неизвестно. Вложенный файл "выбранный" icns. Использование неизвестно. Вложенный "темный" файл ICNS. Разрешает автоматическое переключение значков в темном режиме (добавлен в macOS 10.14). Примечание: Содержимое этой записи представляет собой полный файл icns с несколькими форматами. Если байты записи записаны на диск, то заголовок файла icns и размер файла все равно требуются для просмотра полной иконы темного режима. В таблице содержимого представлен список всех содержащихся типов (имя типа 4 байта + длина 4 байта). Данные для всех вложенных файлов icns не содержат заголовок файла icns. Так что, если вы хотите сохранить данные в файл, вы должны добавить заголовок icns.
to disk, the icns file header and file size are still required to see the full dark mode icon. The table of contents is a list of all contained types (4 byte type name + 4 byte length). The data for all nested icns files does not contain the icns file header. So, if you want to save the data to a file you have to prepend the icns header.