From 5de28945200c4a9b73b2066b716cdb13ccd4dd2a Mon Sep 17 00:00:00 2001 From: cnwenjun <496190712@qq.com> Date: Mon, 5 Sep 2022 14:12:37 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E5=9B=BE=E7=89=87=E5=88=86?= =?UTF-8?q?=E5=89=B2=E5=A4=B1=E7=9C=9F=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/cn/hutool/core/img/ImgUtil.java | 10 ++++++---- .../src/test/java/cn/hutool/core/img/ImgUtilTest.java | 2 +- 2 files changed, 7 insertions(+), 5 deletions(-) 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 3cdd781b2..ccc8363ff 100755 --- a/hutool-core/src/main/java/cn/hutool/core/img/ImgUtil.java +++ b/hutool-core/src/main/java/cn/hutool/core/img/ImgUtil.java @@ -439,12 +439,13 @@ public class ImgUtil { * * @param srcImageFile 源图像文件 * @param destDir 切片目标文件夹 + * @param format 目标文件格式 * @param rows 目标切片行数。默认2,必须是范围 [1, 20] 之内 * @param cols 目标切片列数。默认2,必须是范围 [1, 20] 之内 */ - public static void sliceByRowsAndCols(File srcImageFile, File destDir, int rows, int cols) { + public static void sliceByRowsAndCols(File srcImageFile, File destDir, String format, int rows, int cols) { try { - sliceByRowsAndCols(ImageIO.read(srcImageFile), destDir, rows, cols); + sliceByRowsAndCols(ImageIO.read(srcImageFile), destDir, format, rows, cols); } catch (IOException e) { throw new IORuntimeException(e); } @@ -455,10 +456,11 @@ public class ImgUtil { * * @param srcImage 源图像,如果非{@link BufferedImage},则默认使用RGB模式 * @param destDir 切片目标文件夹 + * @param format 目标文件格式 * @param rows 目标切片行数。默认2,必须是范围 [1, 20] 之内 * @param cols 目标切片列数。默认2,必须是范围 [1, 20] 之内 */ - public static void sliceByRowsAndCols(Image srcImage, File destDir, int rows, int cols) { + public static void sliceByRowsAndCols(Image srcImage, File destDir, String format, int rows, int cols) { if (false == destDir.exists()) { FileUtil.mkdir(destDir); } else if (false == destDir.isDirectory()) { @@ -486,7 +488,7 @@ public class ImgUtil { for (int j = 0; j < cols; j++) { tag = cut(bi, new Rectangle(j * destWidth, i * destHeight, destWidth, destHeight)); // 输出为文件 - ImageIO.write(toRenderedImage(tag), IMAGE_TYPE_JPEG, new File(destDir, "_r" + i + "_c" + j + ".jpg")); + ImageIO.write(toRenderedImage(tag), format, new File(destDir, "_r" + i + "_c" + j + "." + format)); } } } catch (IOException e) { 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 421fbed71..d53e28b0a 100755 --- a/hutool-core/src/test/java/cn/hutool/core/img/ImgUtilTest.java +++ b/hutool-core/src/test/java/cn/hutool/core/img/ImgUtilTest.java @@ -89,7 +89,7 @@ public class ImgUtilTest { @Test @Ignore public void sliceByRowsAndColsTest() { - ImgUtil.sliceByRowsAndCols(FileUtil.file("d:/test/logo.jpg"), FileUtil.file("d:/test/dest"), 1, 5); + ImgUtil.sliceByRowsAndCols(FileUtil.file("d:/temp/2.png"), FileUtil.file("d:/temp/slice/png"),ImgUtil.IMAGE_TYPE_PNG, 1, 5); } @Test