Java 图片压缩

图片压缩在所有网站都是必备的,现在手机拍照都是非常的清晰,图片的大小也是非常的大, 所以有必要对图片进行压缩;

Thumbnailator 一个google使用的开源的工具类, 非常的好用,我们看看如何使用这个工具

  • 引入 maven jar
<dependency>
   <groupId>net.coobird</groupId>
   <artifactId>thumbnailator</artifactId>
   <version>0.4.8</version>
</dependency>
  • 使用示例
public class ImageCompress {

	private static Log LOG = LogFactory.getLog(ImageCompress.class);

	/**
	 * 压缩图片
	 * @param srcFile
	 * @param targetFile
	 * @param scale 0 ~ 1,越小压缩越高
	 * @return
	 */
	public static boolean scale(File srcFile, File targetFile, float scale)
	{
		boolean rs = false;
		try {
			if(srcFile == null || !srcFile.exists())
			{
				return rs;
			}
			if(scale > 1 || scale < 0)
			{
				scale = 0.5f;
			}

			Thumbnails.of(srcFile).scale(scale).toFile(targetFile);
			rs = true;
		} catch (IOException e) {
			LOG.error("compress image error:", e);
		}  
		return rs;
	}

	public static boolean scale(String srcFilePath, String targetFilePath, float scale)
	{
		File srcFile = new File(srcFilePath);
		File targetFile = new File(targetFilePath);
		return scale(srcFile, targetFile, scale);
	}

	public static void main(String[] args)
	{
		String srcFilePath = "C:/Users/Administrator/Desktop/xxx.jpg";
		String targetFilePath = "C:/Users/Administrator/Desktop/xxx.png";
		scale(srcFilePath, targetFilePath, 0.5f);
	}

}

参数说明:

  • srcFile 图片源文件
  • targetFile 转换完成文件
  • scale 压缩比例大小