PNG數據流JS編碼器和解碼器:png-stream

jopen 10年前發布 | 28K 次閱讀 圖形/圖像處理 png-stream

png-stream是一個JavaScript庫實現了一個PNG數據流的編碼器和解碼器。可用于Node和瀏覽器環境。支持animated PNGs 和正常的normal still PNGs。

Decoding

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.
  }));
https://github.com/devongovett/png-stream

Encoding

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'));

項目主頁:http://www.baiduhome.net/lib/view/home/1416362008258

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!