图片大小压缩

  • application.properties配置文件
  • java工具类
  • 使用

application.properties配置文件

#后端接收图片大小
spring.servlet.multipart.max-file-size=50MB
spring.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 fromPath1 byte直接文件图片* @return 剪切后的byte文件*/public static byte[] imageSet(byte[] fromPath1) throws Exception {return imageChangeSize(fromPath1, 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();//转换编码格式JPEGImageIO.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)@ResponseBodypublic 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();}

页面

<!--身份证正面--><div class="photo" id="photo" enctype="multipart/form-data"><input type="file" multiple="multiple" accept="image/*"onchange="getImg(event,'photo',1)" enctype="multipart/form-data" id="face" required/></div>

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 图片大小压缩相关推荐

  1. PNG图片怎么将图片大小压缩

    PNG图片相比于其它的图片类型更加的清晰,清晰地同时文件也会更大,这样我们进行上传到网站就上传不了,因为很多的网站对图片的大小都会有规定,一般不超过规定的大小才可以上传,想上传PNG图片就要将PNG图 ...

  2. iOS自带图片大小压缩

    iOS自带的图片压缩方式有两个方法: UIImageJPEGRepresentation: UIImagePNGRepresentation: 在开发中个人用的比较多的方式是UIImageJPEGRe ...

  3. Android图片压缩—可按照图片大小压缩

    简介:最近在做图片上传的相关功能,需要对图片的大小和尺寸进行压缩处理. 好处:(1)提升性能(2)节省流量 一.图片大小循环压缩 /*** 压缩图片文件到指定大小** @param filePath* ...

  4. java后台图片大小压缩

    现在像素越来越高,图片越来越大,但是有时我们保存到服务器上的图片并不需要这么大.占用服务器资源不说,每回调阅查看时还浪费流量,所以就需要在存照片进服务器的时候进行下图片的压缩. 废话不多说,上代码: ...

  5. js图片大小压缩到指定范围

    文章目录 1. compressUtil.js 2. 使用方法 1. compressUtil.js /*** 图片压缩类* @param minSize* @param maxSize* @cons ...

  6. 【问题帖】压缩图片大小至指定Kb以下

    像PS,QQ影像等都有该功能,将图片大小压缩至指定kb以下. 我也来山寨一把,到目前为止,控制图片的大小,平时的解决方案通过分辨率和质量来控制的. 假定最后压缩的大小是100kb,那么在保证不大于10 ...

  7. 压缩图片大小至指定Kb以下

    像PS,QQ影像等都有该功能,将图片大小压缩至指定kb以下. 我也来山寨一把,到目前为止,控制图片的大小,平时的解决方案通过分辨率和质量来控制的. 假定最后压缩的大小是100kb,那么在保证不大于10 ...

  8. 照片怎么改大小300k?图片怎么压缩到指定大小?

    我们在上传照片的时候经常会提示照片大小超过上限,需要将照片压缩到300k以下,那么照片怎么改大小300k呢?这里推荐大家使用压缩图片的图片压缩指定大小(图片压缩到指定大小 图片压缩大小至指定kb以下- ...

  9. 图片大小与什么有关?图片大小怎么改小?

    ​我们在平时的工作生活当中使用图片的时候,都会遇到过上传图片受限制的情况,这种情况下一般是对图片的大小kb有限制,那么当遇到这种情况的时候我们应该怎么将图片压缩变小呢?图片的大小与哪些因素有关呢?今天 ...

  10. 手机中的图片怎么压缩大小?

    手机中的图片怎么压缩大小?我们的手机中都会保存很多的图片,这些图片有些会很大,怎么将手机中的图片压缩变小呢,下面小编就给大家分享一个将手机中的图片压缩变小的简单方法. 第一种方法:在线压缩 1:(首先 ...

最新文章

  1. Excahange2007邮件收件人的管理
  2. java发送get请求_如何快速掌握Java技术 Tomcat知识点有哪些
  3. 资源放送丨《Oracle DataGuard 备份恢复最佳实践 》PPT视频
  4. eclipse的编辑器样式风格设置
  5. 大型云原生项目在数字化企业落地过程解密 1
  6. Java面试题-多线程
  7. Linux虚拟机中vim编辑器常用命令介绍(一)
  8. Excel格式刷使用技巧
  9. STM32——FLASH闪存编程原理与步骤
  10. 组件化-创建私有组件库库
  11. SPSS Modeler 数据整理之变量设定 (指南 第三章)
  12. 网络学习:路由器 如何实现不同网络互连(ip协议) 和 和内网访问外网( nat转化协议)
  13. Arduino入门(一)
  14. TP3.2中filed和find()使用
  15. STorM32 BGC 相关
  16. kafka是什么?主要用在什么场景
  17. windows企微应用双开/多开
  18. 多张JPG图片怎么转成一个PDF
  19. Unity车轮碰撞器起步刹车太慢
  20. Linux_正则表达式与文件格式化处理详解《鸟哥的Linux私房菜》学习笔记(极其详细,看完这篇必学会)

热门文章

  1. 练习2-12 输出华氏-摄氏温度转换表
  2. 最简单PS双重曝光效果制作教程
  3. STM32接电机驱动,杜邦线供电,然后反烧问题
  4. 车载高德地图显示服务器信息,车载高德一直gps定位中,怎么解决高德地图导航gps信号弱...
  5. librosa 语音库(二)STFT 的实现
  6. ubuntu系统重装恢复步骤
  7. 如何实现向APP推送消息
  8. linux libodbc.so.1,关于C#:Testprintenv:加载共享库时出错:libodbc.so.1:无法打开共享对象文件...
  9. [2018大数据年终总决赛一等奖]金融市场板块划分与轮动规律挖掘与可视化问题
  10. 实现家庭WiFi网络全覆盖