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