A JavaScript library to use ICO. Works on both Node.js and the browser.
npm install icojsconst ICO = require('icojs');const ICO = require('icojs/browser')or
<script type="text/javascript" src="node_modules/icojs/dist/ico.js"></script>To fully use this library, browsers must support JavaScript typed arrays, Canvas API and Promise. Chrome, Edge 12, Firefox and Safari 9 support these functions.
const fs = require('fs');
const ICO = require('icojs');
const buffer = fs.readFileSync('favicon.ico');
ICO.parse(buffer, 'image/png').then(images => {
// save as png files
images.forEach(image => {
const file = `${image.width}x${image.height}-${image.bpp}bit.png`;
const data = Buffer.from(image.buffer);
fs.writeFileSync(file, data);
});
});<input type="file" id="input-file" />
<script>
document.getElementById('input-file').addEventListener('change', function (evt) {
// use FileReader for converting File object to ArrayBuffer object
var reader = new FileReader();
reader.onload = function (e) {
ICO.parse(e.target.result).then(function (images) {
// logs images
console.dir(images);
})
};
reader.readAsArrayBuffer(evt.target.files[0]);
}, false);
</script>https://egy186.github.io/icojs/#demo
- ICO
- isICO(source) ⇒
boolean⏏ - parse(buffer, [mime]) ⇒
Promise.<Array.<ParsedImage>>⏏
- isICO(source) ⇒
Check the ArrayBuffer is valid ICO.
Kind: global method of ICO
Returns: boolean - True if arg is ICO.
| Param | Type | Description |
|---|---|---|
| source | ArrayBuffer | Buffer |
ICO file data. |
Parse ICO and return some images.
Kind: global method of ICO
Returns: Promise.<Array.<ParsedImage>> - Resolves to an array of ParsedImage.
| Param | Type | Default | Description |
|---|---|---|---|
| buffer | ArrayBuffer | Buffer |
ICO file data. | |
| [mime] | string |
"image/png" |
MIME type for output. |
Kind: global typedef
Properties
| Name | Type | Description |
|---|---|---|
| width | number |
Image width. |
| height | number |
Image height. |
| bpp | number |
Image color depth as bits per pixel. |
| buffer | ArrayBuffer |
Image buffer. |
MIT license