ImgUtil增加sliceByRowsAndCols重载方法支持自定义图片格式

This commit is contained in:
Looly 2022-09-05 17:18:00 +08:00
parent 366a0e5c93
commit 8165bf9c82
3 changed files with 34 additions and 5 deletions

View File

@ -25,6 +25,7 @@
* 【core 】 扩展LocalDateTimeUtil.isIn方法使用场景pr#2589@Github
* 【core 】 MapUtil增加根据entry分组pr#2591@Github
* 【core 】 优化 getProcessorCount 潜在的获取不到的问题pr#792@Gitee
* 【core 】 ImgUtil增加sliceByRowsAndCols重载方法支持自定义图片格式pr#793@Gitee
*
### 🐞Bug修复
* 【http 】 修复https下可能的Patch、Get请求失效问题issue#I3Z3DH@Gitee

View File

@ -434,6 +434,18 @@ public class ImgUtil {
}
}
/**
* 图像切割指定切片的行数和列数
*
* @param srcImageFile 源图像文件
* @param destDir 切片目标文件夹
* @param rows 目标切片行数默认2必须是范围 [1, 20] 之内
* @param cols 目标切片列数默认2必须是范围 [1, 20] 之内
*/
public static void sliceByRowsAndCols(File srcImageFile, File destDir, int rows, int cols) {
sliceByRowsAndCols(srcImageFile, destDir, IMAGE_TYPE_JPEG, rows, cols);
}
/**
* 图像切割指定切片的行数和列数
*
@ -451,6 +463,18 @@ public class ImgUtil {
}
}
/**
* 图像切割指定切片的行数和列数默认RGB模式
*
* @param srcImage 源图像如果非{@link BufferedImage}则默认使用RGB模式
* @param destDir 切片目标文件夹
* @param rows 目标切片行数默认2必须是范围 [1, 20] 之内
* @param cols 目标切片列数默认2必须是范围 [1, 20] 之内
*/
public static void sliceByRowsAndCols(Image srcImage, File destDir, int rows, int cols) {
sliceByRowsAndCols(srcImage, destDir, IMAGE_TYPE_JPEG, rows, cols);
}
/**
* 图像切割指定切片的行数和列数默认RGB模式
*
@ -459,6 +483,7 @@ public class ImgUtil {
* @param format 目标文件格式
* @param rows 目标切片行数默认2必须是范围 [1, 20] 之内
* @param cols 目标切片列数默认2必须是范围 [1, 20] 之内
* @since 5.8.6
*/
public static void sliceByRowsAndCols(Image srcImage, File destDir, String format, int rows, int cols) {
if (false == destDir.exists()) {

View File

@ -1,5 +1,6 @@
package cn.hutool.system;
import cn.hutool.core.lang.Console;
import org.junit.Assert;
import org.junit.Ignore;
import org.junit.Test;
@ -16,31 +17,33 @@ public class SystemUtilTest {
@Test
public void getCurrentPidTest() {
long pid = SystemUtil.getCurrentPID();
final long pid = SystemUtil.getCurrentPID();
Assert.assertTrue(pid > 0);
}
@Test
public void getJavaInfoTest() {
JavaInfo javaInfo = SystemUtil.getJavaInfo();
final JavaInfo javaInfo = SystemUtil.getJavaInfo();
Assert.assertNotNull(javaInfo);
}
@Test
public void getJavaRuntimeInfoTest() {
JavaRuntimeInfo info = SystemUtil.getJavaRuntimeInfo();
final JavaRuntimeInfo info = SystemUtil.getJavaRuntimeInfo();
Assert.assertNotNull(info);
}
@Test
public void getOsInfoTest() {
OsInfo osInfo = SystemUtil.getOsInfo();
final OsInfo osInfo = SystemUtil.getOsInfo();
Assert.assertNotNull(osInfo);
Console.log(osInfo.getName());
}
@Test
public void getHostInfo() {
HostInfo hostInfo = SystemUtil.getHostInfo();
final HostInfo hostInfo = SystemUtil.getHostInfo();
Assert.assertNotNull(hostInfo);
}