summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/utils/images.js18
1 files changed, 17 insertions, 1 deletions
diff --git a/lib/utils/images.js b/lib/utils/images.js
index e387d6b..6d4b927 100644
--- a/lib/utils/images.js
+++ b/lib/utils/images.js
@@ -38,7 +38,23 @@ function convertSVGBufferToPNG(buf, dest) {
});
}
+// Converts a inline data: to png file
+function convertInlinePNG(source, dest) {
+ if (!/^data\:image\/png/.test(source)) return Promise.reject(new Error('Source is not a PNG data-uri'));
+
+ var base64data = source.split('data:image/png;base64,')[1];
+ var buf = new Buffer(base64data, 'base64');
+
+ return fs.writeFile(dest, buf)
+ .then(function() {
+ if (fs.existsSync(dest)) return;
+
+ throw new Error('Error converting '+source+' into '+dest);
+ });
+}
+
module.exports = {
convertSVGToPNG: convertSVGToPNG,
- convertSVGBufferToPNG: convertSVGBufferToPNG
+ convertSVGBufferToPNG: convertSVGBufferToPNG,
+ convertInlinePNG: convertInlinePNG
}; \ No newline at end of file