Closed
Description
I ran into performance issues with toBuffer
. Here's an example of drawing (rather) large image onto canvas, then calling toBuffer
. toBuffer
is what's taking the longest here (drawImage
, for example, is insignificant). I'm getting ~7-7.5 sec on toBuffer
call. This is on node v0.10.13, node-canvas v1.0.3, and Mac OS X (10.7.5).
Is there a way to speed things up? Anything at all? I also tried async toBuffer
but it doesn't really help.
var fs = require('fs'),
Canvas = require('canvas'),
Image = Canvas.Image;
// 3.9MB, 4686x4668
fs.readFile(__dirname + '/big_img.jpg', function(err, bigImg) {
if (err) throw err;
img = new Image;
img.src = bigImg;
var canvas = new Canvas(img.width, img.height);
var ctx = canvas.getContext('2d');
ctx.drawImage(img, 0, 0);
console.time('toBuffer');
canvas.toBuffer();
console.timeEnd('toBuffer'); // 7196ms, 7435ms, 7237ms
});
Attaching image used in a test.
Metadata
Metadata
Assignees
Labels
No labels