Use pngquant (close #43); rename option formatEncoding->formatQuality
This commit is contained in:
parent
f524f1465e
commit
ee1cb21dfd
3 changed files with 14 additions and 6 deletions
|
@ -14,6 +14,7 @@ var packageJson = require('./package');
|
|||
packageJson.name += '-light';
|
||||
delete packageJson.dependencies['canvas'];
|
||||
delete packageJson.dependencies['mapbox-gl-native'];
|
||||
delete packageJson.dependencies['node-pngquant-native'];
|
||||
delete packageJson.dependencies['sharp'];
|
||||
|
||||
delete packageJson.devDependencies;
|
||||
|
|
|
@ -29,6 +29,7 @@
|
|||
"mapbox-gl-native": "3.3.2",
|
||||
"mbtiles": "0.9.0",
|
||||
"morgan": "1.7.0",
|
||||
"node-pngquant-native": "1.0.4",
|
||||
"nomnom": "1.8.1",
|
||||
"request": "2.74.0",
|
||||
"sharp": "0.15.1",
|
||||
|
|
|
@ -18,6 +18,7 @@ var Canvas = require('canvas'),
|
|||
mercator = new (require('sphericalmercator'))(),
|
||||
mbgl = require('mapbox-gl-native'),
|
||||
mbtiles = require('mbtiles'),
|
||||
pngquant = require('node-pngquant-native'),
|
||||
request = require('request');
|
||||
|
||||
var utils = require('./utils');
|
||||
|
@ -294,21 +295,26 @@ module.exports = function(options, repo, params, id, dataResolver) {
|
|||
|
||||
image.toFormat(format);
|
||||
|
||||
var formatEncoding = (params.formatEncoding || {})[format] ||
|
||||
(options.formatEncoding || {})[format];
|
||||
var formatQuality = (params.formatQuality || {})[format] ||
|
||||
(options.formatQuality || {})[format];
|
||||
if (format == 'png') {
|
||||
image.compressionLevel(formatEncoding || 6)
|
||||
.withoutAdaptiveFiltering();
|
||||
image.withoutAdaptiveFiltering();
|
||||
} else if (format == 'jpeg') {
|
||||
image.quality(formatEncoding || 80);
|
||||
image.quality(formatQuality || 80);
|
||||
} else if (format == 'webp') {
|
||||
image.quality(formatEncoding || 90);
|
||||
image.quality(formatQuality || 90);
|
||||
}
|
||||
image.toBuffer(function(err, buffer, info) {
|
||||
if (!buffer) {
|
||||
return res.status(404).send('Not found');
|
||||
}
|
||||
|
||||
if (format == 'png') {
|
||||
buffer = pngquant.compress(buffer, {
|
||||
quality: [0, formatQuality || 90]
|
||||
});
|
||||
}
|
||||
|
||||
res.set({
|
||||
'Last-Modified': lastModified,
|
||||
'Content-Type': 'image/' + format
|
||||
|
|
Loading…
Reference in a new issue