shields/phantomjs-svg2png.js
2014-01-05 12:36:51 +01:00

28 lines
764 B
JavaScript

var page = require('webpage').create();
var system = require('system');
var svg = system.args[1];
var svgUrl = 'data:image/svg+xml,' + window.encodeURI(svg);
var tmpFile = system.args[2];
page.viewportSize = getSvgDimensions(svg);
page.open(svgUrl, function(status) {
if (status !== 'success') {
console.error('Failed to load the following SVG data:');
console.error(svgUrl);
phantom.exit(1);
} else {
page.render(tmpFile);
phantom.exit();
}
});
function getSvgDimensions(svg) {
var frag = window.document.createElement('div');
frag.innerHTML = svg;
var svgRoot = frag.querySelector('svg');
return {
width: parseFloat(svgRoot.getAttribute('width') || 80),
height: parseFloat(svgRoot.getAttribute('height') || 19)
};
}