44 lines
1.2 KiB
JavaScript
44 lines
1.2 KiB
JavaScript
var Promise = require('./promise');
|
|
var command = require('./command');
|
|
var fs = require('./fs');
|
|
var error = require('./error');
|
|
|
|
// Convert a svg file to a pmg
|
|
function convertSVGToPNG(source, dest, options) {
|
|
if (!fs.existsSync(source)) return Promise.reject(new error.FileNotFoundError({ filename: source }));
|
|
|
|
return command.spawn('svgexport', [source, dest])
|
|
.fail(function(err) {
|
|
if (err.code == 'ENOENT') {
|
|
err = error.RequireInstallError({
|
|
cmd: 'svgexport',
|
|
install: 'Install it using: "npm install svgexport -g"'
|
|
});
|
|
}
|
|
throw err;
|
|
})
|
|
.then(function() {
|
|
if (fs.existsSync(dest)) return;
|
|
|
|
throw new Error('Error converting '+source+' into '+dest);
|
|
});
|
|
}
|
|
|
|
// Convert a svg buffer to a png file
|
|
function convertSVGBufferToPNG(buf, dest) {
|
|
// Create a temporary SVG file to convert
|
|
return fs.tmpFile({
|
|
postfix: '.svg'
|
|
})
|
|
.then(function(tmpSvg) {
|
|
return fs.writeFile(tmpSvg, buf)
|
|
.then(function() {
|
|
return convertSVGToPNG(tmpSvg, dest);
|
|
});
|
|
});
|
|
}
|
|
|
|
module.exports = {
|
|
convertSVGToPNG: convertSVGToPNG,
|
|
convertSVGBufferToPNG: convertSVGBufferToPNG
|
|
}; |