1
0
mirror of https://gitee.com/dromara/hutool.git synced 2025-04-05 17:37:59 +08:00

修复ImgUtil.convert png转jpg在jdk9+中失败问题

This commit is contained in:
Looly 2023-12-05 21:48:15 +08:00
parent 9866840b81
commit f85e69ab65
3 changed files with 33 additions and 14 deletions
CHANGELOG.md
hutool-core/src
main/java/cn/hutool/core/img
test/java/cn/hutool/core/img

View File

@ -15,6 +15,7 @@
* 【core 】 修复LocalDateTime#parseDate未判断空问题问题issue#I8FN7F@Gitee
* 【http 】 修复RootAction send404 抛异常问题pr#1107@Gitee
* 【extra 】 修复Archiver 最后一个 Entry 为空文件夹时未关闭 Entry问题pr#1123@Gitee
* 【core 】 修复ImgUtil.convert png转jpg在jdk9+中失败问题issue#I8L8UA@Gitee
-------------------------------------------------------------------------------------------------------------
# 5.8.23(2023-11-12)

View File

@ -531,13 +531,7 @@ public class ImgUtil {
FileUtil.copy(srcImageFile, destImageFile, true);
}
ImageOutputStream imageOutputStream = null;
try {
imageOutputStream = getImageOutputStream(destImageFile);
convert(read(srcImageFile), destExtName, imageOutputStream, StrUtil.equalsIgnoreCase(IMAGE_TYPE_PNG, srcExtName));
} finally {
IoUtil.close(imageOutputStream);
}
Img.from(srcImageFile).write(destImageFile);
}
/**
@ -560,16 +554,25 @@ public class ImgUtil {
* @param srcImage 源图像流
* @param formatName 包含格式非正式名称的 String如JPGJPEGGIF等
* @param destImageStream 目标图像输出流
* @param isSrcPng 源图片是否为PNG格式
* @since 4.1.14
*/
public static void convert(Image srcImage, String formatName, ImageOutputStream destImageStream) {
Img.from(srcImage).setTargetImageType(formatName).write(destImageStream);
}
/**
* 图像类型转换GIF=JPGGIF=PNGPNG=JPGPNG=GIF(X)BMP=PNG<br>
* 此方法并不关闭流
*
* @param srcImage 源图像流
* @param formatName 包含格式非正式名称的 String如JPGJPEGGIF等
* @param destImageStream 目标图像输出流
* @param isSrcPng 源图片是否为PNG格式参数无效
* @since 4.1.14
*/
@Deprecated
public static void convert(Image srcImage, String formatName, ImageOutputStream destImageStream, boolean isSrcPng) {
final BufferedImage src = toBufferedImage(srcImage, isSrcPng ? BufferedImage.TYPE_INT_ARGB : BufferedImage.TYPE_INT_RGB);
try {
ImageIO.write(src, formatName, destImageStream);
} catch (IOException e) {
throw new IORuntimeException(e);
}
convert(srcImage, formatName, destImageStream);
}
// ---------------------------------------------------------------------------------------------------------------------- grey

View File

@ -0,0 +1,15 @@
package cn.hutool.core.img;
import cn.hutool.core.io.FileUtil;
import org.junit.Ignore;
import org.junit.Test;
public class IssueI8L8UATest {
@Test
@Ignore
public void convertTest() {
ImgUtil.convert(
FileUtil.file("d:/test/1.png"),
FileUtil.file("d:/test/1.jpg"));
}
}