A streaming PNG chunk decoder / encoder
var rice =decoder = riceencoder = 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
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.
$ npm install chunky-rice
rice = require('chunky-rice')
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
and a value of
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.
Chunk#value() -> Buffer or null
If the chunk is a
tEXt chunk, returns the value data.
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).
Modify an in-flight chunk -- only available on chunks sent via decoder
decoder.pause() on its source stream, and
the ready callback has been called.