# Apple Icon Image

Apple Icon Image (icns) est le format d'icône utilisé par Apple sur Mac OS X. Il supporte des icônes de dimension 16×16, 32×32, 48×48, 128×128, 256×256, 512×512, et 1024×1024 pixels, avec des masques alpha pour gérer la transparence ainsi que la gestion de plusieurs états d'un même icône (exemple : un dossier ouvert ou fermé).

## Structure du fichier

Le format du fichier contient un entête de 8 bytes, suivie d'un ensemble d'icônes.

### Entête

| Offset | Taille | Description |
| 0 | 4 | Magic, doit être icns (0x69, 0x63, 0x6e, 0x73) |
| 4 | 4 | Taille du fichier, en bytes |

### Données de l'icône

| Offset | Taille | Description |
| 0 | 4 | Type d'icône, voir OSType ci-dessous. |
| 4 | 4 | Taille des données, en bytes |
| 8 | Variable | Donnée de l'icône |

### Compression

Au fur et à mesure, le format a été amélioré pour supporter la compression. Les données des icônes de type 32-bit (is32, il32, ih32, it32) sont souvent compressées par un algorithme de codage par plages.

### Type d'icône

| OSType (en) | Taille (bytes) | Dimension (pixels) | Version d'OS | Description |
| ICON | 128 | 32 | 1.0 | 32×32 1-bit mono icon |
| ICN# | 256 | 32 | 6.0 | 32×32 1-bit mono icon, 1-bit mask |
| icm# | 24 | 16 | 6.0 | 16×12 1 bit mask |
| icm4 | 96 | 16 | 7.0 | 16×12 4 bit icon |
| icm8 | 192 | 16 | 7.0 | 16×12 8 bit icon |
| ics# | 32 | 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 | varie (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 | varie (6,912) | 48 | 8.5 | 48×48 24-bit icon |
| h8mk | 2,304 | 48 | 8.5 | 48×48 8-bit mask |
| it32 | varie (49,152) | 128 | 10.0 | 128×128 24-bit icon |
| t8mk | 16,384 | 128 | 10.0 | 128×128 8-bit mask |
| ic07 | varie | 256 | 10.8 | 128x128@2x icône "retina" au format JPEG 2000 ou PNG |
| ic08 | varie | 256 | 10.5 | 256×256 icon format JPEG 2000 ou PNG |
| ic09 | varie | 512 | 10.5 | 512×512 icône au format JPEG 2000 ou PNG |
| ic10 | varie | 1024 | 10.7 | 1024×1024 (ou 512x512@2x pour mac os 10.8) icône au format JPEG 2000 ou PNG |
| ic11 | varie | 32 | 10.8 | 16x16@2x icône "retina" au format JPEG 2000 ou PNG |
| ic12 | varie | 64 | 10.8 | 32x32@2x icône "retina" au format JPEG 2000 ou PNG |
| ic13 | varie | 256 | 10.8 | 128x128@2x icône "retina" au format JPEG 2000 ou PNG |
| ic14 | varie | 512 | 10.8 | 256x256@2x icône "retina" au format JPEG 2000 or PNG format |
* Les valeurs entre parenthèses représentent la taille décompressée des données de l'icône.

### Autre types

| OSType (en) | Taille (bytes) | Description |
| TOC␣(le glyphe « ␣ » représente une espace) | varie | "Table of Contents"(Table des matières) une liste de toutes les images (ajouté dans Mac OS X 10.7) |
| icnV | 4 | 4-byte big endian float - contient la version d'Icon Composer qui a créé l'icône |