From 73152c536173b3a446bde47838a1e4b0d8588163 Mon Sep 17 00:00:00 2001 From: Looly Date: Tue, 5 Dec 2023 21:41:41 +0800 Subject: [PATCH] fix bug --- .../hutool/core/text/TextSimilarityTest.java | 4 ++ .../hutool/extra/spring/SpringUtil.java | 46 +++++++++++++++++-- .../org/dromara/hutool/swing/img/ImgUtil.java | 38 ++++++--------- .../hutool/swing/img/IssueI8L8UATest.java | 28 +++++++++++ 4 files changed, 86 insertions(+), 30 deletions(-) create mode 100644 hutool-swing/src/test/java/org/dromara/hutool/swing/img/IssueI8L8UATest.java diff --git a/hutool-core/src/test/java/org/dromara/hutool/core/text/TextSimilarityTest.java b/hutool-core/src/test/java/org/dromara/hutool/core/text/TextSimilarityTest.java index 7ac30d782..739ac17ff 100644 --- a/hutool-core/src/test/java/org/dromara/hutool/core/text/TextSimilarityTest.java +++ b/hutool-core/src/test/java/org/dromara/hutool/core/text/TextSimilarityTest.java @@ -18,6 +18,10 @@ import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; +import java.util.Comparator; +import java.util.HashMap; +import java.util.Map; + /** * 文本相似度计算工具类单元测试 * diff --git a/hutool-extra/src/main/java/org/dromara/hutool/extra/spring/SpringUtil.java b/hutool-extra/src/main/java/org/dromara/hutool/extra/spring/SpringUtil.java index 16b725014..372518696 100644 --- a/hutool-extra/src/main/java/org/dromara/hutool/extra/spring/SpringUtil.java +++ b/hutool-extra/src/main/java/org/dromara/hutool/extra/spring/SpringUtil.java @@ -20,6 +20,7 @@ import org.springframework.beans.factory.config.ConfigurableListableBeanFactory; import org.springframework.beans.factory.support.DefaultSingletonBeanRegistry; import org.springframework.context.*; import org.springframework.core.ResolvableType; +import org.springframework.core.env.ConfigurableEnvironment; import java.lang.reflect.ParameterizedType; import java.util.Arrays; @@ -65,7 +66,7 @@ public class SpringUtil implements ApplicationContextInitializer 属性值类型 + * @param key 配置项key + * @param targetType 配置项类型 + * @param defaultValue 默认值 + * @return 属性值 + * @since 5.8.24 + */ + public static T getProperty(final String key, final Class targetType, final T defaultValue) { + final ConfigurableEnvironment environment = getEnvironment(); + return null == environment ? null : environment.getProperty(key, targetType, defaultValue); + } + + /** + * 获取环境属性 + * + * @return {@link ConfigurableEnvironment} + */ + public static ConfigurableEnvironment getEnvironment() { + return null == applicationContext ? null : applicationContext.getEnvironment(); } /** diff --git a/hutool-swing/src/main/java/org/dromara/hutool/swing/img/ImgUtil.java b/hutool-swing/src/main/java/org/dromara/hutool/swing/img/ImgUtil.java index 689fba886..e95876657 100644 --- a/hutool-swing/src/main/java/org/dromara/hutool/swing/img/ImgUtil.java +++ b/hutool-swing/src/main/java/org/dromara/hutool/swing/img/ImgUtil.java @@ -501,28 +501,22 @@ public class ImgUtil { * 图像类型转换:GIF=》JPG、GIF=》PNG、PNG=》JPG、PNG=》GIF(X)、BMP=》PNG * * @param srcImageFile 源图像文件 - * @param destImageFile 目标图像文件 + * @param targetImageFile 目标图像文件 */ - public static void convert(final File srcImageFile, final File destImageFile) { + public static void convert(final File srcImageFile, final File targetImageFile) { Assert.notNull(srcImageFile); - Assert.notNull(destImageFile); - Assert.isFalse(srcImageFile.equals(destImageFile), "Src file is equals to dest file!"); + Assert.notNull(targetImageFile); + Assert.isFalse(srcImageFile.equals(targetImageFile), "Src file is equals to dest file!"); // 通过扩展名检查图片类型,相同类型直接复制 final String srcExtName = FileNameUtil.extName(srcImageFile); - final String destExtName = FileNameUtil.extName(destImageFile); + final String destExtName = FileNameUtil.extName(targetImageFile); if (StrUtil.equalsIgnoreCase(srcExtName, destExtName)) { // 扩展名相同直接复制文件 - FileUtil.copy(srcImageFile, destImageFile, true); + FileUtil.copy(srcImageFile, targetImageFile, true); } - ImageOutputStream imageOutputStream = null; - try { - imageOutputStream = getImageOutputStream(destImageFile); - convert(read(srcImageFile), destExtName, imageOutputStream, StrUtil.equalsIgnoreCase(IMAGE_TYPE_PNG, srcExtName)); - } finally { - IoUtil.closeQuietly(imageOutputStream); - } + Img.from(srcImageFile).write(targetImageFile); } /** @@ -531,11 +525,11 @@ public class ImgUtil { * * @param srcStream 源图像流 * @param formatName 包含格式非正式名称的 String:如JPG、JPEG、GIF等 - * @param destStream 目标图像输出流 + * @param targetStream 目标图像输出流 * @since 3.0.9 */ - public static void convert(final InputStream srcStream, final String formatName, final OutputStream destStream) { - write(read(srcStream), formatName, getImageOutputStream(destStream)); + public static void convert(final InputStream srcStream, final String formatName, final OutputStream targetStream) { + write(read(srcStream), formatName, getImageOutputStream(targetStream)); } /** @@ -544,17 +538,11 @@ public class ImgUtil { * * @param srcImage 源图像流 * @param formatName 包含格式非正式名称的 String:如JPG、JPEG、GIF等 - * @param destImageStream 目标图像输出流 - * @param isSrcPng 源图片是否为PNG格式 + * @param targetImageStream 目标图像输出流 * @since 4.1.14 */ - public static void convert(final Image srcImage, final String formatName, final ImageOutputStream destImageStream, final boolean isSrcPng) { - final BufferedImage src = toBufferedImage(srcImage, isSrcPng ? BufferedImage.TYPE_INT_ARGB : BufferedImage.TYPE_INT_RGB); - try { - ImageIO.write(src, formatName, destImageStream); - } catch (final IOException e) { - throw new IORuntimeException(e); - } + public static void convert(final Image srcImage, final String formatName, final ImageOutputStream targetImageStream) { + Img.from(srcImage).setTargetImageType(formatName).write(targetImageStream); } // endregion diff --git a/hutool-swing/src/test/java/org/dromara/hutool/swing/img/IssueI8L8UATest.java b/hutool-swing/src/test/java/org/dromara/hutool/swing/img/IssueI8L8UATest.java new file mode 100644 index 000000000..63f5b37c9 --- /dev/null +++ b/hutool-swing/src/test/java/org/dromara/hutool/swing/img/IssueI8L8UATest.java @@ -0,0 +1,28 @@ +/* + * Copyright (c) 2023. looly(loolly@aliyun.com) + * Hutool is licensed under Mulan PSL v2. + * You can use this software according to the terms and conditions of the Mulan PSL v2. + * You may obtain a copy of Mulan PSL v2 at: + * https://license.coscl.org.cn/MulanPSL2 + * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, + * EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, + * MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE. + * See the Mulan PSL v2 for more details. + */ + +package org.dromara.hutool.swing.img; + +import org.dromara.hutool.core.io.file.FileUtil; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +public class IssueI8L8UATest { + + @Test + @Disabled + void convertTest() { + ImgUtil.convert( + FileUtil.file("d:/test/1.png"), + FileUtil.file("d:/test/1.jpg")); + } +}