From db5f36028f6eb57376e3fe358babc28b1b343ec6 Mon Sep 17 00:00:00 2001 From: Looly Date: Mon, 17 Nov 2025 21:42:18 +0800 Subject: [PATCH 1/2] fix bug --- .../java/cn/hutool/v7/swing/img/ImgUtil.java | 5 +++-- .../cn/hutool/v7/swing/img/ImgWriter.java | 19 +++++++++++-------- 2 files changed, 14 insertions(+), 10 deletions(-) diff --git a/hutool-swing/src/main/java/cn/hutool/v7/swing/img/ImgUtil.java b/hutool-swing/src/main/java/cn/hutool/v7/swing/img/ImgUtil.java index 9b0b86b51..aadb67515 100644 --- a/hutool-swing/src/main/java/cn/hutool/v7/swing/img/ImgUtil.java +++ b/hutool-swing/src/main/java/cn/hutool/v7/swing/img/ImgUtil.java @@ -1727,7 +1727,7 @@ public class ImgUtil { * @since 3.1.0 */ public static void write(final Image image, final File targetFile) throws IORuntimeException { - ImgWriter.of(image, FileNameUtil.extName(targetFile)).write(targetFile); + ImgWriter.of(image, FileNameUtil.extName(targetFile)).write(targetFile).flush(); } /** @@ -1773,7 +1773,8 @@ public class ImgUtil { public static void write(final Image image, final String imageType, final ImageOutputStream output, final float quality) { ImgWriter.of(image, imageType) .setQuality(quality) - .write(output); + .write(output) + .flush(); } /** diff --git a/hutool-swing/src/main/java/cn/hutool/v7/swing/img/ImgWriter.java b/hutool-swing/src/main/java/cn/hutool/v7/swing/img/ImgWriter.java index 7133c1004..721fad944 100644 --- a/hutool-swing/src/main/java/cn/hutool/v7/swing/img/ImgWriter.java +++ b/hutool-swing/src/main/java/cn/hutool/v7/swing/img/ImgWriter.java @@ -16,9 +16,9 @@ package cn.hutool.v7.swing.img; -import cn.hutool.v7.core.io.file.FileUtil; import cn.hutool.v7.core.io.IORuntimeException; import cn.hutool.v7.core.io.IoUtil; +import cn.hutool.v7.core.io.file.FileUtil; import cn.hutool.v7.core.lang.Assert; import javax.imageio.IIOImage; @@ -28,7 +28,6 @@ import javax.imageio.ImageWriter; import javax.imageio.stream.ImageOutputStream; import java.awt.Color; import java.awt.Image; -import java.awt.image.BufferedImage; import java.awt.image.ColorModel; import java.awt.image.RenderedImage; import java.io.File; @@ -96,9 +95,11 @@ public class ImgWriter implements Flushable { * * @param out 写出到的目标流 * @throws IORuntimeException IO异常 + * @return this */ - public void write(final OutputStream out) throws IORuntimeException { + public ImgWriter write(final OutputStream out) throws IORuntimeException { write(ImgUtil.getImageOutputStream(out)); + return this; } /** @@ -106,8 +107,9 @@ public class ImgWriter implements Flushable { * * @param targetFile 目标文件 * @throws IORuntimeException IO异常 + * @return this */ - public void write(final File targetFile) throws IORuntimeException { + public ImgWriter write(final File targetFile) throws IORuntimeException { FileUtil.touch(targetFile); ImageOutputStream out = null; try { @@ -116,14 +118,16 @@ public class ImgWriter implements Flushable { } finally { IoUtil.closeQuietly(out); } + return this; } /** * 通过{@link ImageWriter}写出图片到输出流 * * @param output 输出的Image流{@link ImageOutputStream}, 非空 + * @return this */ - public void write(final ImageOutputStream output) { + public ImgWriter write(final ImageOutputStream output) { Assert.notNull(output); final ImageWriter writer = this.writer; @@ -145,14 +149,13 @@ public class ImgWriter implements Flushable { // FileCacheImageOutputStream会产生临时文件,此处关闭清除 IoUtil.closeQuietly(output); } + return this; } @Override public void flush() { final RenderedImage renderedImage = this.image; - if(renderedImage instanceof BufferedImage){ - ImgUtil.flush((BufferedImage) renderedImage); - } else if(renderedImage instanceof Image){ + if(renderedImage instanceof Image){ ImgUtil.flush((Image) renderedImage); } } From eb9d50daf6a2c8b470f58b9ab38f784551becdd2 Mon Sep 17 00:00:00 2001 From: LettuceLeaves <2878506229@qq.com> Date: Tue, 18 Nov 2025 18:56:44 +0800 Subject: [PATCH 2/2] =?UTF-8?q?docs:=E4=BF=AE=E6=94=B9=E6=96=87=E6=A1=A3?= =?UTF-8?q?=E4=B8=AD=E7=9A=84=E7=89=88=E6=9C=AC=E9=94=99=E8=AF=AF=E4=BF=A1?= =?UTF-8?q?=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 9d0fcc0f8..c30000238 100644 --- a/README.md +++ b/README.md @@ -197,7 +197,7 @@ Hutool欢迎任何人为Hutool添砖加瓦,贡献代码,不过维护者是 1. 注释完备,尤其每个新增的方法应按照Java文档规范标明方法说明、参数说明、返回值说明等信息,必要时请添加单元测试,如果愿意,也可以加上你的大名。 2. Hutool的缩进按照Eclipse(~~不要跟我说IDEA多好用,维护者非常懒,学不会~~,IDEA真香,改了Eclipse快捷键后舒服多了)默认(tab)缩进,所以请遵守(不要和我争执空格与tab的问题,这是一个病人的习惯)。 3. 新加的方法不要使用第三方库的方法,Hutool遵循无依赖原则(除非在extra模块中加方法工具)。 -4. 请pull request到`v6-dev`分支。Hutool在6.x版本后使用了新的分支:`v6-master`是主分支,表示已经发布中央库的版本,这个分支不允许pr,也不允许修改。 +4. 请pull request到`v7-dev`分支。Hutool在7.x版本后使用了新的分支:`v7-master`是主分支,表示已经发布中央库的版本,这个分支不允许pr,也不允许修改。 ### 💞沟通说明