|
|
|
|
@ -17,8 +17,7 @@ async function processImage(uploadBuffer, originalName, shrinkImageSwitch) {
|
|
|
|
|
const compressImages = optionService.getOptionBool("compressImages");
|
|
|
|
|
const origImageFormat = getImageType(uploadBuffer);
|
|
|
|
|
|
|
|
|
|
if (origImageFormat && ["webp", "svg", "gif"].includes(origImageFormat.ext)) {
|
|
|
|
|
// JIMP does not support webp at the moment: https://github.com/oliver-moran/jimp/issues/144
|
|
|
|
|
if (!origImageFormat || !["jpg", "png"].includes(origImageFormat.ext)) {
|
|
|
|
|
shrinkImageSwitch = false;
|
|
|
|
|
}
|
|
|
|
|
else if (isAnimated(uploadBuffer)) {
|
|
|
|
|
@ -26,9 +25,18 @@ async function processImage(uploadBuffer, originalName, shrinkImageSwitch) {
|
|
|
|
|
shrinkImageSwitch = false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
const finalImageBuffer = (compressImages && shrinkImageSwitch) ? await shrinkImage(uploadBuffer, originalName) : uploadBuffer;
|
|
|
|
|
|
|
|
|
|
const imageFormat = getImageType(finalImageBuffer);
|
|
|
|
|
let finalImageBuffer;
|
|
|
|
|
let imageFormat;
|
|
|
|
|
|
|
|
|
|
if (compressImages && shrinkImageSwitch) {
|
|
|
|
|
finalImageBuffer = await shrinkImage(uploadBuffer, originalName);
|
|
|
|
|
imageFormat = getImageType(finalImageBuffer);
|
|
|
|
|
} else {
|
|
|
|
|
finalImageBuffer = uploadBuffer;
|
|
|
|
|
imageFormat = origImageFormat || {
|
|
|
|
|
ext: 'dat'
|
|
|
|
|
};
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return {
|
|
|
|
|
buffer: finalImageBuffer,
|
|
|
|
|
@ -43,7 +51,9 @@ function getImageType(buffer) {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
return imageType(buffer) || "jpg"; // optimistic JPG default
|
|
|
|
|
return imageType(buffer) || {
|
|
|
|
|
ext: "jpg"
|
|
|
|
|
}; // optimistic JPG default
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|