bitreader

0.0.1 • Public • Published

bitreader Build Status

Generic, space efficient (uses Buffer#slice as much as possilbe) parser with sugar for digesting strings, ints, etc. Inherits from stream, implements write and end, and emits data events for easy piping.

Install

$ npm install bitreader

Example

Adapted from streampng

function SuggestedPalette() { this.intialize.apply(this, arguments) }
SuggestedPalette.prototype.initialize = function initialize(data) {
  var colourSize, chunkSize;
  var parser = BitReader(data);
 
  this.type = 'sPLT'
  this.paletteName = parser.eatString();
  this.sampleDepth = parser.eatUInt(1);
  this.palette = [];
 
  colourSize = (this.sampleDepth === 16) ? 2 : 1;
  chunkSize = (colourSize === 2) ? 10 : 6
 
  this.palette = parser.eatRest({ chunkSize: chunkSize }).map(function (entry) {
    var p = BitReader(entry);
    return {
      red: p.eatUInt(colourSize),
      green: p.eatUInt(colourSize),
      blue: p.eatUInt(colourSize),
      alpha: p.eatUInt(colourSize),
      frequency: p.eatUInt(2)
    }
  }.bind(this));
};

API

See the API page on the wiki

Tests

Uses tap for testing. Tested against node 0.6.19 and node 0.8.2.

$ npm test

License

http://wtfpl.org/

Readme

Keywords

none

Package Sidebar

Install

npm i bitreader

Weekly Downloads

1,512

Version

0.0.1

License

none

Last publish

Collaborators

  • brianloveswords