ICNS encoder and decoder library
npm install icns-endecThe OSType must match one of the supported ones on the Supported OSType Table. The buffer field must be a Buffer or an ArrayBuffer.
#### Example
``
const fsPromises = require('fs').promises
const icnsEndec = require('icns-endec')
(async () => {
// Encode ic07 and ic08 from PNG images.
let icnsBuffer = icnsEndec.encode([
{
OSType: 'ic07',
buffer: await fsPromises.readFile('myIcon-128x128.png'),
},
new icnsEndec.IconEntry('ic08', await fsPromises.readFile('myIcon-256x256.png')),
])
// Write out our ICNS file.
await fsPromises.writeFile('myIcon.icns', icnsBuffer)
})()
`
#### Example
`
const fsPromises = require('fs').promises
const icnsEndec = require('icns-endec')
(async () => {
// Retrieve the icons as an array of IconEntries.
let icns = icnsEndec.decode(await fsPromises.readFile('myIcon.icns'))
// Write out all icons.
for (let icn of icns) {
await fsPromises.writeFile(myIcon-${icn.OSType}.${icn.ext})`
}
})()
let iconEntry = new IconEntry('ic14', await fsPromises.readFile('myPNG-1024x1024.png'))
``| OSType | Supported|
|-|-|
| ICON | |
| ICN# | |
| icm# | |
| icm4 | |
| icm8 | |
| ics# | |
| ics4 | |
| ics8 | |
| is32 | |
| s8mk | |
| icl4 | |
| icl8 | |
| il32 | |
| l8mk | |
| ich# | |
| ich4 | |
| ich8 | |
| ih32 | |
| h8mk | |
| it32 | |
| t8mk | |
| icp4 | |
| icp5 | |
| icp6 | |
| ic07 | x |
| ic08 | x |
| ic09 | x |
| ic10 | x |
| ic11 | x |
| ic12 | x |
| ic13 | x |
| ic14 | x |
| ic04 | |
| ic05 | |
| icsB | |
| icsb | |