Wat is het ICNS-bestandsformaat?
.icns is een binair containerformaat dat wordt gebruikt door macOS. .icns-bestanden slaan verschillende pictogrammen op die door applicaties worden gebruikt. Elke applicatie kan zijn eigen pictogrambestand hebben, meestal opgeslagen in de map Contents/Resources/ van de app-bundel. Verwijzingen naar .icns-bestanden worden ook vermeld in .plist-configuratiebestanden. Pictogrammen in .icns-bestanden kunnen worden bekeken met de macOS Finder of door ze te openen met een compatibele afbeeldingsviewer.
Het .icns-formaat ondersteunt pictogrammen van verschillende formaten, zoals 16×16, 32×32, 128×128, 256×256, 512×512 en 1024×1024 op nieuwere systemen. Oudere, kleinere pictogramelementen slaan 24-bits kleur op met een 8-bits alfamasker met behulp van run-length encoding. Elementen van 256×256 en groter bevatten een volledige .png-afbeelding - of JPEG 2000 - die 32-bits RGBA levert op Retina-resolutie.
Het bestand opent met de 4-byte ASCII-magic icns, gevolgd door een 4-byte big-endian totale bestandslengte. De body is een reeks pictogramelementen, elk geïdentificeerd door een 4-byte OSType-tag - bijvoorbeeld ic09 voor 512×512 en ic10 for 1024×1024. Om een .icns-bestand samen te stellen uit bronafbeeldingen, biedt macOS de opdrachtregeltool iconutil: plaats correct benoemde .png-bestanden in een map .iconset en voer iconutil -c icns MyIcon.iconset uit. Het formaat dient hetzelfde doel op macOS als het .ico-bestand op Windows.
Beveiliging & veiligheid
RISICO: LOWEen .icns bestaat uit afbeeldingsgegevens, niet uit uitvoerbare code, dus een echt pictogrambestand is veilig te openen in een viewer. Twee kleine waarschuwingen: afbeeldingsparsers hebben in het verleden bugs gehad (een misvormd pictogram zou in theorie een afbeeldingsbibliotheek kunnen laten crashen), dus houd je OS/viewer up-to-date; en een onverwacht „pictogram” dat vraagt om UITGEVOERD te worden, of een uitvoerbaar bestand vermomd met een naam die op een pictogram lijkt, moet met argwaan worden behandeld. Voor app-pictogrammen en gedownloade pictogrampakketten van normale bronnen is er in wezen geen risico.
Formaatdetails
in een notendopProgramma's die ICNS-bestanden openen
Technische details
diepe specificaties| Bestandsmagic | `icns` (0x69 0x63 0x6E 0x73) op offset 0 |
| Header-structuur | 4-byte magic + 4-byte big-endian totale bestandslengte, gevolgd door een reeks pictogramelementen |
| Byte-volgorde | Big-endian voor alle multi-byte integers |
| Formaat pictogramelement | {4-byte OSType tag, 4-byte elementlengte, data} - één blok per grootte/variant |
| Codering kleine elementen | Run-length encoding (RLE) voor 24-bits kleurenbitmaps (`is32`, `il32` en vergelijkbare legacy-types) |
| Codering grote elementen | Ingebedde PNG of JPEG 2000 voor elementen van 256×256 en groter |
| Kleurdiepte | 24-bits kleur + 8-bits alfamasker (RLE-elementen); 32-bits RGBA via ingebedde PNG (moderne elementen) |
| Ondersteunde canvasformaten | 16×16, 32×32, 128×128, 256×256, 512×512, 1024×1024 (ook 512×512@2× Retina) |
| Veelvoorkomende OSType-tags | `ic07` 128×128, `ic08` 256×256, `ic09` 512×512, `ic10` 1024×1024, `is32`/`il32` legacy 16/32 px |
| MIME-type | `image/icns`; ook geregistreerd als `image/x-icns` |
| Locatie app-bundel | `Contents/Resources/<AppName>.icns` binnen een macOS `.app`-bundel |
| Build-toolchain | `iconutil -c icns MyIcon.iconset` converteert een `.iconset`-map met PNG-bestanden naar een enkel `.icns`-bestand |
| Optioneel TOC-element | Een optioneel `TOC `-element (met spatie aan het einde) aan het begin van de elementenlijst maakt snel zoeken mogelijk zonder een volledige bestandsscan |
| Integriteitsmechanisme | Lengtevelden per element en 4-byte bestandslengte-header; geen cryptografische checksum |
| Typische bestandsgrootte | Enkele KB (minimale set) tot enkele honderden KB (volledige Retina-set) |
| Uitgebracht | 1998 (Mac OS 8.5); replaced the classic resource-fork 'icns' icon resource as a standalone file |
| Laatste versie | Retina/HiDPI variants and PNG/JPEG2000-compressed elements up to 1024x1024 (since macOS 10.7 Lion, 2011) |
| Specificatie | en.wikipedia.org |
ICNS conversies
Community V&A
gevraagd door gebruikersNog geen vragen - wees de eerste om iets te vragen over ICNS-bestanden.