springboot怎么实现图片大小压缩功能
发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,本篇内容主要讲解"springboot怎么实现图片大小压缩功能",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"springboot怎么实现图片大小压缩功能"
千家信息网最后更新 2026年11月02日springboot怎么实现图片大小压缩功能
本篇内容主要讲解"springboot怎么实现图片大小压缩功能",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"springboot怎么实现图片大小压缩功能"吧!
application.properties配置文件
#后端接收图片大小spring.servlet.multipart.max-file-size=50MBspring.servlet.multipart.max-request-size=50MB
java工具类
import org.slf4j.Logger;import org.slf4j.LoggerFactory;import javax.imageio.ImageIO;import java.awt.image.BufferedImage;import java.awt.image.ImageObserver;import java.io.ByteArrayInputStream;import java.io.ByteArrayOutputStream;import java.io.FileInputStream;import java.io.InputStream;//** * 请求调用方法 * gb * * @param fromPath2 byte直接文件图片 * @return 剪切后的byte文件 */ public static byte[] imageSet(byte[] fromPath2) throws Exception { return imageChangeSize(fromPath2, 470, 635); } /** * @param data byte类型图片 * @param max_wi 图片修改后最大的宽 * @param max_he 图片修改后最大的高 * @return * @throws Exception * @Description 更改图片内容的大小 byte【】 类型 */ public static byte[] imageChangeSize(byte[] data, int max_wi, int max_he) throws Exception { ImageIO io = null; float rate = 1; /*图片的原始宽 120*/ int oldwi; /*图片的原始高 120*/ int oldhe; /*图片修改后的宽 0*/ int new_wi = 0; /*图片修改后的高 0*/ int new_he = 0; /*拿到byte图片*/ InputStream is = new ByteArrayInputStream(data); BufferedImage bufImg = ImageIO.read(is); /*图片的原始宽度*/ oldwi = bufImg.getWidth(); /*图片的原始高度*/ oldhe = bufImg.getHeight(); // rate = (float) oldwi / (float) oldhe; /*如果图片的原宽大于最大宽度,并且原高小于等于最大高度。则证明图片过宽了,将图片宽度设置为最大宽度,此时需要等比例减小高度*/ if (oldwi > max_wi && oldhe <= max_he) { new_wi = max_wi; new_he = new Float((float) new_wi / rate).intValue(); /*如果图片的原宽和原高都大于或者都小于其所对应的最大值,则以任意一方为主(此处以最大高度为主)*/ } else if (oldwi >= max_wi && oldhe >= max_he || oldwi <= max_wi && oldhe <= max_he) { new_he = max_he; new_wi = new Float(new_he * rate).intValue(); /*如果图片的原宽小于于最大宽度,并且原高大于等于最大高度。则证明图片过高了,将图片宽度设置为最大高度,此时需要等比例减小宽度*/ } else if (oldwi <= max_wi && oldhe > max_he) { new_he = max_he; new_wi = new Float(new_he * rate).intValue(); }// System.err.println("原宽度:" + oldwi + "原高度:" + oldhe + "_" + rate); /*开始改变大小*/ ImageObserver ser = null; BufferedImage bf = new BufferedImage(new_wi, new_he, BufferedImage.TYPE_INT_RGB); bf.getGraphics().drawImage(bufImg, 0, 0, new_wi, new_he, null);// System.err.println("新宽度:" + bf.getWidth() + "-" + "新高度:" + bf.getHeight()); ByteArrayOutputStream out = new ByteArrayOutputStream(); //转换编码格式JPEG ImageIO.write(bf, "jpeg", out); byte[] re = out.toByteArray(); //logger.info("【图片剪切】| 图片原大小={}kb | 压缩后大小={}kb", (data.length / 1024), (re.length / 1024)); return re; }使用
controller
@RequestMapping(value = "/getImage", method = RequestMethod.POST)@ResponseBody public JsonData getidcart(@RequestParam(value = "front", required = false) MultipartFile front) throws Exception { byte[] IdCartFront; /** * 图片字节 * 判断压缩 >300kb就压缩到300kb以下 300000k=300kb 设置宽高px--->转小kb */ if (front.getSize() > SIZE_DEFUALT) { IdCartFront = ImageUtils.imageSet(front.getBytes()); } else { IdCartFront = front.getBytes(); }页面
js
/** 获取照片 */function getImg(e, eId, next) { var imgFile = e.target.files[0]; var newImgFile = window.webkitURL.createObjectURL(imgFile); document.getElementById("" + eId + "").style.backgroundImage = "url(" + newImgFile + ")"; if (next == 1) { front = imgFile; } else if (next == 2) { back = imgFile; } else if (next == 3) { face = imgFile; }}//ajax:************************//将file文件转为formdata,Ajax传到后台 formData = new FormData(); formData.append('front', front); url: url, type: 'POST', cache: false, data: formData, processData: false, contentType: false,到此,相信大家对"springboot怎么实现图片大小压缩功能"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
图片
宽度
大小
最大
高度
原始
文件
功能
内容
方法
类型
剪切
学习
实用
更深
兴趣
后台
图片内容
字节
实用性
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
上海睿民互联网科技有限公司
互联网科技网
涨乐互联网科技
互联网与科技金融数据
远拓互联网科技
顺玮阁互联网科技
润盈互联网科技
天下捷融互联网科技
互联网 新科技
互联网科技股午盘股票涨跌
互联网科技实习生岗位职责
顶级互联网科技成果有哪些
苏州五指互联网络科技有限
无锡工业互联网科技有限公司
互联网时代的科技公司
小米互联网科技园入驻
梅州GM互联网络科技有限公司
互联网科技年终奖
互联网领先科技成果宣传视频
高科技和互联网的现代国家
互联网科技有限公司经营范围
互联网科技的英文
鑫亿盛互联网科技
互联网金融 科技创新
阿里巴巴算科技企业还是互联网
互联网校园科技培训
江阴互联网智能科技产品进口
深圳市优智互联网科技有限公司
阿里互联网科技企业
沐思想互联网科技有限公司