icojs v0.19.4
icojs
A JavaScript library to use ICO. Works on both Node.js and the browser.
Install
npm install icojs
Node.js:
import { isICO, parseICO } from 'icojs';
Browser:
import { isICO, parseICO } from '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.
Example
Node.js:
import { readFile, writeFile } from 'node:fs/promises';
import { parseICO } from 'icojs';
const buffer = await readFile('favicon.ico');
const images = await parseICO(buffer, 'image/png');
// save as png files
images.forEach(image => {
const file = `${image.width}x${image.height}-${image.bpp}bit.png`;
const data = Buffer.from(image.buffer);
writeFile(file, data);
});
Browser:
<input type="file" id="input-file" />
<script>
document.getElementById('input-file').addEventListener('change', evt => {
// use FileReader for converting File object to ArrayBuffer object
var reader = new FileReader();
reader.onload = async e => {
const images = await ICO.parseICO(e.target.result);
// logs images
console.dir(images);
};
reader.readAsArrayBuffer(evt.target.files[0]);
}, false);
</script>
Demo
https://egy186.github.io/icojs/#demo
API
ICO
- ICO
- isICO(source) ⇒ boolean ⏏
- parseICO(buffer, [mime]) ⇒ Promise.<Array.<ParsedImage>> ⏏
isICO(source) ⇒ boolean ⏏
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. |
parseICO(buffer, mime) ⇒ Promise.<Array.<ParsedImage>> ⏏
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. |
Typedefs
ParsedImage : object
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. |
License
MIT license
3 months ago
11 months ago
11 months ago
12 months ago
12 months ago
12 months ago
2 years ago
3 years ago
4 years ago
4 years ago
4 years ago
4 years ago
5 years ago
5 years ago
5 years ago
6 years ago
6 years ago
6 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
10 years ago