1 pom文件添加依赖
<!--图片处理工具类-->
<dependency>
<groupId>net.coobird</groupId>
<artifactId>thumbnailator</artifactId>
<version>0.4.8</version>
</dependency>
2 图片上传工具类
/**
* 上传图片
*
* @param image 图片文件
* @param baseUrl 基础url
* @return
* @throws IOException
*/
public static String uploadImage(MultipartFile image, String baseUrl) throws IOException {
String OriginalVideoName = image.getOriginalFilename();
//后缀
String imageSuffix = OriginalVideoName.substring(OriginalVideoName.lastIndexOf(".") + 1);
if (!(imageSuffix.equalsIgnoreCase("jpg") || imageSuffix.equalsIgnoreCase("png") || imageSuffix.equalsIgnoreCase("jpeg"))) {
return null;
}
String fileName = RandomUtil.generateUniqueName() + "." + imageSuffix;
File file = new File(baseUrl, fileName);
try {
// 先尝试压缩并保存图片
Thumbnails.of(image.getInputStream()).scale(0.7f).outputQuality(0.25f).toFile(file);
} catch (Exception e) {
// 失败了再用spring mvc自带的方式
image.transferTo(file);
}
return baseUrl + File.separator + fileName;
}
//按比例压缩
Thumbnails.of(image.getInputStream()).scale(0.7f).outputQuality(0.25f).toFile(file);
//按尺寸压缩
Thumbnails.of(image.getInputStream()).size(100,100).keepAspectRatio(false).toFile(file);