0.0.1 • Published 12 years ago

bitreader v0.0.1

Weekly downloads
43
License
-
Repository
github
Last release
12 years ago

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/

0.0.1

12 years ago

0.0.0

12 years ago