Make compressionLevel/quality configurable + change defaults

This commit is contained in:
Petr Sloup 2016-03-11 16:40:05 +01:00
parent 074c873826
commit 5a94689385
2 changed files with 19 additions and 4 deletions

View file

@ -43,7 +43,12 @@ The config file can contain definition of several paths where the tiles will be
"domains": [
"localhost:8080",
"127.0.0.1:8080"
]
],
"formatEncoding": {
"png": 6,
"jpeg": 80,
"webp": 90
}
},
"styles": {
"test": {

View file

@ -230,9 +230,19 @@ module.exports = function(options, repo, params, id) {
image.resize(width * scale, height * scale);
}
image.toFormat(format)
.compressionLevel(9)
.toBuffer(function(err, buffer, info) {
image.toFormat(format);
var formatEncoding = (params.formatEncoding || {})[format] ||
(options.formatEncoding || {})[format];
if (format == 'png') {
image.compressionLevel(formatEncoding || 6)
.withoutAdaptiveFiltering();
} else if (format == 'jpeg') {
image.quality(formatEncoding || 80);
} else if (format == 'webp') {
image.quality(formatEncoding || 90);
}
image.toBuffer(function(err, buffer, info) {
if (!buffer) {
return res.status(404).send('Not found');
}