Files
NodeBB/src/image.js

47 lines
1.0 KiB
JavaScript
Raw Normal View History

2014-03-05 23:00:27 -05:00
'use strict';
2014-02-09 00:34:05 -05:00
var fs = require('fs'),
2014-03-05 23:00:27 -05:00
gm = require('gm').subClass({imageMagick: true}),
2014-02-09 00:34:05 -05:00
meta = require('./meta');
var image = {};
image.resizeImage = function(path, extension, width, height, callback) {
function done(err, stdout, stderr) {
callback(err);
}
if(extension === '.gif') {
2014-03-05 23:00:27 -05:00
gm().in(path)
.in('-coalesce')
.in('-resize')
.in(width+'x'+height)
.write(path, done);
2014-02-09 00:34:05 -05:00
} else {
2014-03-05 23:00:27 -05:00
gm(path)
.resize(width, height)
2014-03-05 23:00:27 -05:00
.write(path, done);
2014-02-09 00:34:05 -05:00
}
};
image.convertImageToPng = function(path, extension, callback) {
var convertToPNG = parseInt(meta.config['profile:convertProfileImageToPNG'], 10);
if(convertToPNG && extension !== '.png') {
2014-03-05 23:00:27 -05:00
gm(path).toBuffer('png', function(err, buffer) {
if (err) {
2014-02-09 00:34:05 -05:00
return callback(err);
}
2014-03-05 23:00:27 -05:00
fs.writeFile(path, buffer, 'binary', callback);
2014-02-09 00:34:05 -05:00
});
} else {
callback();
}
};
image.convertImageToBase64 = function(path, callback) {
fs.readFile(path, function(err, data) {
callback(err, data ? data.toString('base64') : null);
});
2014-03-05 23:00:27 -05:00
};
2014-02-09 00:34:05 -05:00
module.exports = image;