chunky-rice
A streaming PNG chunk decoder / encoder
var rice = decoder = rice encoder = rice // read a PNG and output a new PNG with metadatafs
chunky-rice
is a module that provides a decoder that takes
binary data and outputs Chunk
objects (allowing you to manipulate
a PNG on the fly); as well as a encoder that takes these Chunk
objects
and turns them back into a binary stream.
Both the encoder and decoder are through streams.
chunky-rice
provides porcelin methods for generating your own chunks,
and also, loves you unconditionally.
Installation
$ npm install chunky-rice
API
rice = require('chunky-rice')
Returns the rice
module.
rice.decode() -> Decoder instance
Creates a binary-to-Chunk through stream. Pausable and resumable.
rice.encode() -> Encoder instance
Creates a Chunk-to-binary through stream. Pausable and resumable.
rice.chunk(string type, Buffer data) -> Chunk
Creates a Chunk of the provided type with the provided data. CRC and length data is
not necessary -- data
should only contain the chunk data!
rice.text(string key, string value) -> Chunk
Creates a tEXt chunk with a key of key
and a value of value
.
Chunk#type() -> string
Returns the string representation of the chunk type.
Chunk#key() -> string or null
If the chunk is a tEXt
chunk, returns the key data.
Otherwise returns null
.
Chunk#value() -> Buffer or null
If the chunk is a tEXt
chunk, returns the value data.
Otherwise returns null
.
Chunk#crc() -> integer
Cached. If not pre-computed, recomputes the CRC of the provided data and type and writes it to the Chunk's backing store.
Chunk#buffer() -> buffer
Cached. Returns the buffer representing the full data of the chunk (to include the 4 byte length, 4 byte type, data segment, and 4 byte CRC).
Chunk#modify(function(ready))
Modify an in-flight chunk -- only available on chunks sent via decoder data
events.
Automatically calls decoder.pause()
on its source stream, and decoder.resume()
once
the ready callback has been called.
fs
License
MIT.