diff --git a/hutool-core/src/main/java/cn/hutool/core/img/ImgUtil.java b/hutool-core/src/main/java/cn/hutool/core/img/ImgUtil.java index 614814a2b..feff1e0e1 100644 --- a/hutool-core/src/main/java/cn/hutool/core/img/ImgUtil.java +++ b/hutool-core/src/main/java/cn/hutool/core/img/ImgUtil.java @@ -1515,8 +1515,9 @@ public class ImgUtil { imageType = IMAGE_TYPE_JPG; } - final ImageWriter writer = getWriter(image, imageType); - return write(toBufferedImage(image, imageType), writer, destImageStream, quality); + final BufferedImage bufferedImage = toBufferedImage(image, imageType); + final ImageWriter writer = getWriter(bufferedImage, imageType); + return write(bufferedImage, writer, destImageStream, quality); } /** @@ -1783,7 +1784,7 @@ public class ImgUtil { * @since 4.3.2 */ public static ImageWriter getWriter(Image img, String formatName) { - final ImageTypeSpecifier type = ImageTypeSpecifier.createFromRenderedImage(toRenderedImage(img)); + final ImageTypeSpecifier type = ImageTypeSpecifier.createFromRenderedImage(toBufferedImage(img, formatName)); final Iterator iter = ImageIO.getImageWriters(type, formatName); return iter.hasNext() ? iter.next() : null; } diff --git a/hutool-core/src/test/java/cn/hutool/core/img/ImgUtilTest.java b/hutool-core/src/test/java/cn/hutool/core/img/ImgUtilTest.java index 5e06cd80b..2a1c1a860 100644 --- a/hutool-core/src/test/java/cn/hutool/core/img/ImgUtilTest.java +++ b/hutool-core/src/test/java/cn/hutool/core/img/ImgUtilTest.java @@ -98,7 +98,8 @@ public class ImgUtilTest { @Test @Ignore public void writeTest() { - ImgUtil.write(ImgUtil.read("e:/test2.png"), FileUtil.file("e:/test2Write.jpg")); + final byte[] bytes = ImgUtil.toBytes(ImgUtil.read("d:/test/logo_484.png"), "png"); + FileUtil.writeBytes(bytes, "d:/test/result.png"); } @Test