1.0.1 • Published 1 month ago

parse-ico v1.0.1

Weekly downloads
-
License
MIT
Repository
github
Last release
1 month ago

parse-ico

A JavaScript library to use ICO. Works on both Node.js and the browser.

NOTE: This package is a fork of icojs.

Install

npm install parse-ico

Node.js:

const ICO = require('parse-ico');

Browser:

const ICO = require('parse-ico/browser')

or

<script type="text/javascript" src="node_modules/parse-ico/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:

const fs = require('fs');
const ICO = require('parse-ico');

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);
  });
});

Browser:

<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>

API

ICO

isICO(source) ⇒ boolean

Check the ArrayBuffer is valid ICO.

Kind: global method of ICO
Returns: boolean - True if arg is ICO.

ParamTypeDescription
sourceArrayBuffer | BufferICO file data.

parse(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.

ParamTypeDefaultDescription
bufferArrayBuffer | BufferICO file data.
mimestring"image/png"MIME type for output.

Typedefs

ParsedImage : object

Kind: global typedef
Properties

NameTypeDescription
widthnumberImage width.
heightnumberImage height.
bppnumberImage color depth as bits per pixel.
bufferArrayBufferImage buffer.

License

MIT license

1.0.1

1 month ago

1.0.0

1 month ago