From ff289ac2c8de52502872cae48de807d6c3732500 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=9D=B4=EC=A3=BC=EC=9D=BC?= Date: Fri, 17 Jul 2026 14:45:55 +0900 Subject: [PATCH] =?UTF-8?q?fix:=20=EC=83=81=ED=92=88=20=EC=9D=B4=EB=AF=B8?= =?UTF-8?q?=EC=A7=80=20=EC=97=85=EB=A1=9C=EB=93=9C=20=ED=88=AC=EB=AA=85?= =?UTF-8?q?=EB=8F=84=20=EB=B3=B4=EC=A1=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../util/file/service/FileStorageService.java | 28 +++++++++++++++---- 1 file changed, 23 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/wb/domainserver/util/file/service/FileStorageService.java b/src/main/java/com/wb/domainserver/util/file/service/FileStorageService.java index f3be78c7..ca1fcaf1 100644 --- a/src/main/java/com/wb/domainserver/util/file/service/FileStorageService.java +++ b/src/main/java/com/wb/domainserver/util/file/service/FileStorageService.java @@ -310,8 +310,13 @@ public class FileStorageService { if(image != null) { thumbnail = image.getScaledInstance(destWidth, destHeight, Image.SCALE_SMOOTH); } - BufferedImage convertImage = new BufferedImage(destWidth, destHeight, BufferedImage.TYPE_INT_RGB); - convertImage.getGraphics().drawImage(thumbnail, posX, posY, null); + BufferedImage convertImage = new BufferedImage(destWidth, destHeight, getImageType(image, file.getOriginalFilename())); + Graphics graphics = convertImage.getGraphics(); + try { + graphics.drawImage(thumbnail, posX, posY, null); + } finally { + graphics.dispose(); + } String ext = FilenameUtils.getExtension(file.getOriginalFilename()); ImageIO.write(convertImage, ext, os); @@ -376,8 +381,13 @@ public class FileStorageService { if(image != null) { thumbnail = image.getScaledInstance(destWidth, destHeight, Image.SCALE_SMOOTH); } - BufferedImage convertImage = new BufferedImage(thumbnailWidth, thumbnailHeight, BufferedImage.TYPE_INT_RGB); - convertImage.getGraphics().drawImage(thumbnail, posX, posY, null); + BufferedImage convertImage = new BufferedImage(thumbnailWidth, thumbnailHeight, getImageType(image, file.getOriginalFilename())); + Graphics graphics = convertImage.getGraphics(); + try { + graphics.drawImage(thumbnail, posX, posY, null); + } finally { + graphics.dispose(); + } ImageIO.write(convertImage, ext, os); }catch (WnbtRestException wre){ @@ -407,6 +417,14 @@ public class FileStorageService { return thumbnail_file; } + private int getImageType(BufferedImage image, String originalFileName) { + String ext = FilenameUtils.getExtension(originalFileName).toLowerCase(Locale.ROOT); + boolean supportsAlpha = "png".equals(ext) || "gif".equals(ext); + return image != null && image.getColorModel().hasAlpha() && supportsAlpha + ? BufferedImage.TYPE_INT_ARGB + : BufferedImage.TYPE_INT_RGB; + } + /** * combineFilePath 에 지정된 경로에 저장이 됨 @@ -715,4 +733,4 @@ public class FileStorageService { return rtnStr; } -} \ No newline at end of file +}