glad-stream-decoder
Version:
Transform stream to decode GLAD forest alerts
61 lines (54 loc) • 1.66 kB
JavaScript
var Benchmark = require('benchmark')
var fs = require('fs')
var path = require('path')
var DecodeGLADStream = require('./')
var PNGDecoder = require('png-stream/decoder')
var PNGEncoder = require('png-stream/encoder')
var fromBuffer = require('from2-buffer')
var devnull = require('dev-null')
var through2 = require('through2')
var ImageService = require('true-color-tiles/app/src/services/image.service.js')
const Canvas = require('canvas')
var raw = fs.readFileSync(path.join(__dirname, 'test/images/raw.png'))
var suite = new Benchmark.Suite()
suite.add('decoder', function (deferred) {
fromBuffer(raw)
.pipe(new PNGDecoder())
.pipe(new DecodeGLADStream())
.pipe(new PNGEncoder())
.on('finish', function () {
deferred.resolve()
})
}, {defer: true})
suite.add('no decode', function (deferred) {
fromBuffer(raw)
.pipe(new PNGDecoder())
.pipe(new PNGEncoder())
.pipe(through2(
function (chunk, enc, cb) { cb(null, chunk) },
function flush (cb) {
deferred.resolve()
cb()
}
)).pipe(devnull())
}, {defer: true})
suite.add('ImageService', function () {
var img = new Canvas.Image()
img.src = raw
var canvas = new Canvas(img.width, img.height)
var ctx = canvas.getContext('2d')
ctx.drawImage(img, 0, 0)
var I = ctx.getImageData(0, 0, canvas.width, canvas.height)
ImageService.decodeGLAD(I.data)
ctx.putImageData(I, 0, 0)
canvas.toBuffer()
})
// add listeners
suite.on('cycle', function (event) {
console.log(String(event.target))
})
.on('complete', function () {
console.log('Fastest is ' + this.filter('fastest').map('name'))
})
// run async
.run()