From 59e87208667f724f36989c260f548d1cf863061b Mon Sep 17 00:00:00 2001 From: zadam Date: Fri, 11 Feb 2022 22:01:45 +0100 Subject: [PATCH] fix importing unknown image types such as .DWG, closes #2628 --- src/services/image.js | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/src/services/image.js b/src/services/image.js index 9457d1aa4..c2ee26690 100644 --- a/src/services/image.js +++ b/src/services/image.js @@ -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; + let finalImageBuffer; + let imageFormat; - const imageFormat = getImageType(finalImageBuffer); + 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 } }