jopen 7年前

png-stream是一个JavaScript库实现了一个PNG数据流的编码器和解码器。可用于Node和浏览器环境。支持animated PNGs 和正常的normal still PNGs。


This example uses the concat-frames module to collect the output of the PNG decoder into an array of frame objects.

var PNGDecoder = require('png-stream/decoder');  var concat = require('concat-frames');    // decode a PNG file to RGB pixels  fs.createReadStream('in.png')    .pipe(new PNGDecoder)    .pipe(concat(function(frames) {      // frames is an array of frame objects      // each one has a `pixels` property containing      // the raw RGB pixel data for that frame, as      // well as the width, height, etc.    }));


You can encode a PNG by writing or piping pixel data to a PNGEncoder stream. The PNG encoder supports writing data in the RGB, RGBA, grayscale (gray), and grayscale + alpha (gray) color spaces. You can also write data in theindexed color space by first quantizing it using the neuquant module.

var PNGEncoder = require('png-stream/encoder');  var neuquant = require('neuquant');    // convert a JPEG to a PNG  fs.createReadStream('in.jpg')    .pipe(new JPEGDecoder)    .pipe(new PNGEncoder)    .pipe(fs.createWriteStream('out.png'));    // write indexed data  fs.createReadStream('in.jpg')    .pipe(new JPEGDecoder)    .pipe(new neuquant.Stream)    .pipe(new PNGEncoder)    .pipe(fs.createWriteStream('indexed.png'));