Files
NodeBB/src/image.js

68 lines
1.3 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'),
lwip = require('lwip'),
plugins = require('./plugins');
2014-02-09 00:34:05 -05:00
var image = {};
image.resizeImage = function(path, extension, width, height, callback) {
if (plugins.hasListeners('filter:image.resize')) {
plugins.fireHook('filter:image.resize', {
path: path,
extension: extension,
width: width,
height: height
}, function(err, data) {
callback(err);
2015-05-30 20:04:42 +02:00
});
} else {
tryOpen(path, function(err, image) {
2015-08-18 15:17:07 -04:00
if (err) {
return callback(err);
}
image.batch()
.cover(width, height)
.crop(width, height)
.writeFile(path, function(err) {
2015-08-18 15:17:07 -04:00
callback(err);
});
});
}
2014-02-09 00:34:05 -05:00
};
image.normalise = function(path, extension, callback) {
if (plugins.hasListeners('filter:image.normalise')) {
plugins.fireHook('filter:image.normalise', {
path: path,
extension: extension
}, function(err, data) {
callback(err);
});
} else {
tryOpen(path, function(err, image) {
2014-03-05 23:00:27 -05:00
if (err) {
2014-02-09 00:34:05 -05:00
return callback(err);
}
2015-08-18 15:17:07 -04:00
image.writeFile(path, 'png', callback);
2014-02-09 00:34:05 -05:00
});
}
};
function tryOpen(path, callback) {
try {
lwip.open(path, callback);
} catch (err) {
callback(err);
}
}
2014-02-09 00:34:05 -05:00
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
2014-04-10 20:31:57 +01:00
module.exports = image;