Apple Icon Image format
![]() | |
| Filename extension |
.icns |
|---|---|
| Type code | icns |
| Uniform Type Identifier (UTI) | com.apple.icns |
| Developed by | Apple Inc. |
| Type of format | icon file format |
The Apple Icon Image format is the icon format used in Apple Inc.'s macOS. It supports icons of 16 × 16, 32 × 32, 48 × 48, 128 × 128, 256 × 256, 512 × 512, and 1024 × 1024 pixels, 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.
File structure
The file format consists of an 8 byte header, followed by any number of icons.
Header
| Offset | Size | Purpose |
|---|---|---|
| 0 | 4 | Magic literal, must be "icns" (0x69, 0x63, 0x6e, 0x73) |
| 4 | 4 | Length of file, in bytes, msb first |
Icon data
| Offset | Size | Purpose |
|---|---|---|
| 0 | 4 | Icon type, see OSType below. |
| 4 | 4 | Length of data, in bytes (including type and length), msb first |
| 8 | Variable | Icon data |
Compression
| lead value |
tail bytes |
result uncompressed |
|---|---|---|
| 0…127 | 1…128 | 1…128 bytes |
| 128…255 | 1 byte | 3…130 copies |
Over time the format has been improved and there is support for compression of some parts of the pixel data. The 32-bit ("is32", "il32", "ih32","it32") pixel data is often compressed (per channel) with a format similar to PackBits.[1]
Some sources mentioned that the OS supports both compressed or uncompressed data chunks.
Icon types
| OSType | Length (bytes) | Size (pixels) | Supported OS Version | Description |
|---|---|---|---|---|
| ICON | 128 | 32 | 1.0 | 32×32 1-bit mono icon |
| ICN# | 256 | 32 | 6.0 | 32×32 1-bit mono icon with 1-bit mask |
| icm# | 48 | 16 | 6.0 | 16×12 1 bit mono icon with 1-bit mask |
| icm4 | 96 | 16 | 7.0 | 16×12 4 bit icon |
| icm8 | 192 | 16 | 7.0 | 16×12 8 bit icon |
| ics# | 64 (32 img + 32 mask) | 16 | 6.0 | 16×16 1-bit mask |
| ics4 | 128 | 16 | 7.0 | 16×16 4-bit icon |
| ics8 | 256 | 16 | 7.0 | 16x16 8 bit icon |
| is32 | varies (768) | 16 | 8.5 | 16×16 24-bit icon |
| s8mk | 256 | 16 | 8.5 | 16x16 8-bit mask |
| icl4 | 512 | 32 | 7.0 | 32×32 4-bit icon |
| icl8 | 1,024 | 32 | 7.0 | 32×32 8-bit icon |
| il32 | varies (3,072) | 32 | 8.5 | 32x32 24-bit icon |
| l8mk | 1,024 | 32 | 8.5 | 32×32 8-bit mask |
| ich# | 288 | 48 | 8.5 | 48×48 1-bit mask |
| ich4 | 1,152 | 48 | 8.5 | 48×48 4-bit icon |
| ich8 | 2,304 | 48 | 8.5 | 48×48 8-bit icon |
| ih32 | varies (6,912) | 48 | 8.5 | 48×48 24-bit icon |
| h8mk | 2,304 | 48 | 8.5 | 48×48 8-bit mask |
| it32 | varies (49,152) | 128 | 10.0 | 128×128 24-bit icon |
| t8mk | 16,384 | 128 | 10.0 | 128×128 8-bit mask |
| icp4 | varies | 16 | 10.7 | 16x16 icon in JPEG 2000 or PNG format |
| icp5 | varies | 32 | 10.7 | 32x32 icon in JPEG 2000 or PNG format |
| icp6 | varies | 64 | 10.7 | 64x64 icon in JPEG 2000 or PNG format |
| ic07 | varies | 128 | 10.7 | 128x128 icon in JPEG 2000 or PNG format |
| ic08 | varies | 256 | 10.5 | 256×256 icon in JPEG 2000 or PNG format |
| ic09 | varies | 512 | 10.5 | 512×512 icon in JPEG 2000 or PNG format |
| ic10 | varies | 1024 | 10.7 | 1024×1024 in 10.7 (or 512x512@2x "retina" in 10.8) icon in JPEG 2000 or PNG format |
| ic11 | varies | 32 | 10.8 | 16x16@2x "retina" icon in JPEG 2000 or PNG format |
| ic12 | varies | 64 | 10.8 | 32x32@2x "retina" icon in JPEG 2000 or PNG format |
| ic13 | varies | 256 | 10.8 | 128x128@2x "retina" icon in JPEG 2000 or PNG format |
| ic14 | varies | 512 | 10.8 | 256x256@2x "retina" icon in JPEG 2000 or PNG format |
- the values inside the brackets () in the length column is the uncompressed length.
Other types
| OSType | Length (bytes) | Description |
|---|---|---|
| 'TOC ' | varies | "Table of Contents" a list of all image types in the file, and their sizes (added in Mac OS X 10.7) |
| 'icnV' | 4 | 4-byte big endian float - equal to the bundle version number of Icon Composer.app that created to icon |
Support
Various image viewers can load *.icns files, a free and open source converter from or to PNG also exists.[2] GTK+ can load *.icns resources since 2007.[3] Other tools supporting the format include the Apple Icon Composer and icns Browser, The Iconfactory, and IconBuilder.
See also
- ICO format on Windows
- X PixMap format for X11
References
- ↑ Macintosh Icons
- ↑ "libicns". SourceForge project icns. 2009. Retrieved 2016-08-18.
- ↑ Lyonel Vincent (2007). "Mac OS X icons for GTK+". Retrieved 2016-08-18.
