feat: replace formatQuality with formatOptions in config file

formatQuality is more flexible and allows configuration of more than just quality for all formats.
JPEG and WebP still have only their quality configurable.
PNG has all the configuration options from the sharp library exposed.

Signed-off-by: Nathan Reed <nathreed@gmail.com>
This commit is contained in:
Nathan Reed 2024-07-22 19:24:16 +00:00 committed by Andrew Calcutt
parent 0943a74d91
commit 9bc2e028d4

View file

@ -504,14 +504,23 @@ const respondImage = (
image.composite(composites);
}
const formatQuality = (options.formatQuality || {})[format];
const formatOptions = (options.formatOptions || {})[format] || {};
if (format === 'png') {
image.png({ adaptiveFiltering: false });
image.png({
progressive: formatOptions.progressive,
compressionLevel: formatOptions.compressionLevel,
adaptiveFiltering: formatOptions.adaptiveFiltering,
palette: formatOptions.palette,
quality: formatOptions.quality,
effort: formatOptions.effort,
colors: formatOptions.colors,
dither: formatOptions.dither,
});
} else if (format === 'jpeg') {
image.jpeg({ quality: formatQuality || 80 });
image.jpeg({ quality: formatOptions.quality || 80 });
} else if (format === 'webp') {
image.webp({ quality: formatQuality || 90 });
image.webp({ quality: formatOptions.quality || 90 });
}
image.toBuffer((err, buffer, info) => {
if (!buffer) {