最近工作涉及到图片上传,裁剪,缩放,去背景色相关功能,在此总结一下,供需要学习的同学参考也为自己做一次总结:
1,大概讲一下处理逻辑:
1)用户前端上传一张图片(原图),后端进行图像存储后,返回图像的宽高,及图像预览的地址
controller端方法
public .. imgUpload(MultipartFile img){
//读取图像
BufferedImage bufferedImage = ImageIO.read(img.getInputStream());
//获取图像宽度
int width = bufferedImage.getWidth();
//获取图像高度
int height = bufferedImage.getHeight();
//文件上传
....
return ..;
}
2)前端进行图片预览后,进行图片裁剪,点击确认后,返回后端响应参数:图像ID,原始图片宽度,高度,缩放后的图片宽度,高度,裁剪点X,裁剪点Y,裁剪宽度,裁剪高度;
3)先根据图像ID加载 原上传图片信息
4)再在原图片的基础上,进行缩放,得到前端传过来的缩放后的图片宽高
5)对缩放后的图片进行裁剪
6)背景图处理