Java修改图片尺寸

修改图片尺寸包括两种情况:

1、强制指定宽、高尺寸

2、按原图宽、高比例,放大或缩小

maven使用thumbnailator库依赖

<dependency>
    <groupId>net.coobird</groupId>
    <artifactId>thumbnailator</artifactId>
    <version>0.4.8</version>
</dependency>

工具代码

/**
	 * 重新生成图片宽、高
	 * @param srcPath 图片路径
	 * @param destPath 新生成的图片路径
	 * @param newWith 新的宽度
	 * @param newHeight 新的高度
	 * @param forceSize 是否强制使用指定宽、高,false:会保持原图片宽高比例约束
	 * @return
	 * @throws IOException 
	 */
	public static boolean resizeImage (String srcPath, String destPath, int newWith, int newHeight, boolean forceSize) throws IOException {
		if (forceSize) {
			Thumbnails.of(srcPath).forceSize(newWith, newHeight).toFile(destPath);
		} else {
			Thumbnails.of(srcPath).width(newWith).height(newHeight).toFile(destPath);
		}
		return true;
	}

测试代码

/**
	 * 测试重新生成图片宽、高
	 * @throws IOException 
	 */
	@Test
	public void testResizeImage() throws IOException {
		String imageName = "java_coffee.jpg";
		String srcPath = IMAGE_PATH + imageName;
		
		imageName = "java_coffee_resize.jpg";
		String destPath = IMAGE_PATH + imageName;
		boolean forceSize = true;
		Assert.assertTrue(ImageUtil.resizeImage(srcPath, destPath, 200, 200, forceSize));
	}

原图2000*1600

java缩印 java缩小图片尺寸_java缩印

指定宽高强制200

java缩印 java缩小图片尺寸_修改图片尺寸_02

 指定宽高200,非强制,修改后,得到200*160

java缩印 java缩小图片尺寸_修改图片尺寸_03