bitreader-v2
v2.1.0
Published
Generic, space efficient parser with sugar for digesting strings, ints, etc.
Downloads
60
Readme
bitreader
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-v2
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
Tests
Uses tap for testing. Tested against node 0.6.19 and node 0.8.2.
$ npm test