Skip to content

Commit b3b3552

Browse files
committed
Add module for png generation with librsvg
Thanks to @physikerwelt and @wikimedia!
1 parent 7037148 commit b3b3552

1 file changed

Lines changed: 26 additions & 0 deletions

File tree

lib/mj-librsvg.js

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
var rsvg = require('librsvg').Rsvg;
2+
var Readable = require('stream').Readable;
3+
4+
exports.svg2png = function(svg, result, scale, width, height, callback, check) {
5+
var s = new Readable();
6+
var svgRenderer = new rsvg();
7+
s._read = function() {
8+
s.push(svg);
9+
s.push(null);
10+
};
11+
svgRenderer.on('error', function(err){
12+
check(err);
13+
return;
14+
});
15+
svgRenderer.on('finish', function() {
16+
// console.log(width, height, scale, svg);
17+
var buffer = svgRenderer.render({
18+
format: 'png',
19+
width: width * scale,
20+
height: height * scale
21+
}).data;
22+
result.png = "data:image/png;base64," + (buffer || "").toString('base64');
23+
callback();
24+
});
25+
s.pipe(svgRenderer);
26+
};

0 commit comments

Comments
 (0)