From 62b217ebe0fd9e69791315c6d90c470515e5409e Mon Sep 17 00:00:00 2001 From: Jenson-Mac Date: Mon, 13 Sep 2021 00:08:07 +0200 Subject: [PATCH 1/2] fixec#1473 --- .../run/halo/app/handler/file/FileHandler.java | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/src/main/java/run/halo/app/handler/file/FileHandler.java b/src/main/java/run/halo/app/handler/file/FileHandler.java index 3b01ff227e..561bdf1d5e 100644 --- a/src/main/java/run/halo/app/handler/file/FileHandler.java +++ b/src/main/java/run/halo/app/handler/file/FileHandler.java @@ -2,6 +2,7 @@ import static run.halo.app.model.support.HaloConst.FILE_SEPARATOR; +import java.awt.image.BufferedImage; import java.io.IOException; import java.io.InputStream; import java.util.function.Supplier; @@ -73,9 +74,19 @@ default void handleImageMetadata(@NonNull MultipartFile file, if (isImageType(file)) { // Handle image try (InputStream is = file.getInputStream()) { - ImageReader image = ImageUtils.getImageReaderFromFile(is, uploadResult.getSuffix()); - uploadResult.setWidth(image.getWidth(0)); - uploadResult.setHeight(image.getHeight(0)); + + if(ImageUtils.EXTENSION_ICO.equals(uploadResult.getSuffix())) { + BufferedImage icoImage = + ImageUtils.getImageFromFile(is, uploadResult.getSuffix()); + uploadResult.setWidth(icoImage.getWidth()); + uploadResult.setHeight(icoImage.getHeight()); + } else { + ImageReader image = + ImageUtils.getImageReaderFromFile(is, uploadResult.getSuffix()); + uploadResult.setWidth(image.getWidth(0)); + uploadResult.setHeight(image.getHeight(0)); + } + if (thumbnailSupplier != null) { uploadResult.setThumbPath(thumbnailSupplier.get()); } From 3c72cc91d7e2ded230f7e45c6ec6b9a2050cc12f Mon Sep 17 00:00:00 2001 From: Jenson-Mac Date: Mon, 13 Sep 2021 09:56:23 +0200 Subject: [PATCH 2/2] fixed the problem of without dimension information when uploading an ICO picture#1473 --- .../java/run/halo/app/handler/file/FileHandler.java | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/main/java/run/halo/app/handler/file/FileHandler.java b/src/main/java/run/halo/app/handler/file/FileHandler.java index 561bdf1d5e..dc4805b9dc 100644 --- a/src/main/java/run/halo/app/handler/file/FileHandler.java +++ b/src/main/java/run/halo/app/handler/file/FileHandler.java @@ -64,6 +64,8 @@ default boolean isImageType(@NonNull MultipartFile file) { } /** + * Update Metadata for image object. + * * @param uploadResult updated result must not be null * @param file multipart file must not be null * @param thumbnailSupplier thumbnail supplier @@ -74,15 +76,15 @@ default void handleImageMetadata(@NonNull MultipartFile file, if (isImageType(file)) { // Handle image try (InputStream is = file.getInputStream()) { - - if(ImageUtils.EXTENSION_ICO.equals(uploadResult.getSuffix())) { + String extension = uploadResult.getSuffix(); + if (ImageUtils.EXTENSION_ICO.equals(extension)) { BufferedImage icoImage = - ImageUtils.getImageFromFile(is, uploadResult.getSuffix()); + ImageUtils.getImageFromFile(is, extension); uploadResult.setWidth(icoImage.getWidth()); uploadResult.setHeight(icoImage.getHeight()); } else { ImageReader image = - ImageUtils.getImageReaderFromFile(is, uploadResult.getSuffix()); + ImageUtils.getImageReaderFromFile(is, extension); uploadResult.setWidth(image.getWidth(0)); uploadResult.setHeight(image.getHeight(0)); }