blob: ebe9043986c5a0c76e9e24a4321c7395595e9da8 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
|
var _ = require("lodash");
var Q = require("q");
var fs = require("fs");
var gm = require("gm");
var request = require("request");
var links = require("./links");
// Convert a file
var convertFile = function(source, dest, options) {
var d = Q.defer();
options = _.defaults(options || {}, {
resize: null
});
var img = gm(source)
.options({
imageMagick: true
});
if (options.resize) img = img.resize(options.resize.w, options.resize.h);
img.noProfile()
.write(dest, function(err) {
if (!err) return d.resolve();
if (err.code == "ENOENT") {
err = new Error("Need to install 'ImageMagick'");
}
d.reject(err);
});
return d.promise;
};
// Convert a file or url
var convert = function(source, dest, options) {
if (links.isExternal(source)) source = request(source);
return convertFile(source, dest, options);
};
module.exports = {
convert: convert,
INVALID: [".svg"]
};
|