1.引言

服务器配置比较低,打开网站时加载1MB+的图片 速度很慢,影响客户体验。所以从网上找了java修改图片大小的方法,这里记录一下 以备以后不时之需。我这里设置的是宽240,,高135 按照16:9的比例设置。

修改之后的图片大小在100kb左右

16:9的比例其他参数:

3840×2160  2560X1440 1920×1080 1600×900 1366×768 1280×720 1024×576

960×540 854×480 720×405 640×360 480×270 320×180

2.代码

@RequestMapping("/admin/fileUpload")@ResponseBodypublic Map<String, Object> fileUpload(HttpServletRequest request,@RequestParam("uploadFile") MultipartFile uploadFile){Map<String, Object> map = new HashMap<String, Object>();try {//原文件名后缀String fileEnd = FilenameUtils.getExtension(uploadFile.getOriginalFilename());//新文件名以uuid为名String fileUUID = CommonsUtil.getUUID();//获取当前项目部署的地址,也可以直接指定路径,D://blogFile//xx.jpg//String realPath = request.getSession().getServletContext().getRealPath("//blogFile//"+TimeUtil.curYearMonthDay());String realPath = "C://blogFile//"+TimeUtil.curYearMonthDay();File dirs=new File(realPath);if(!dirs.exists()){//判断文件夹是否存在 System.out.println("文件夹不存在,进行创建。");dirs.mkdirs();//不存在就创建}//创建file对象,新地址新名称 原上传图片所需//File newFile=new File(realPath,fileUUID+"."+fileEnd);//上传图片时对图片按照16:9的比例压缩240*135//读取图片BufferedInputStream in = new BufferedInputStream(uploadFile.getInputStream());//字节流转图片对象Image bi =ImageIO.read(in);//构建图片流 按照16:9的比例 设置宽高 240*135 //宽240 高135 我这里直接写死了 也可以写成参数形式的。BufferedImage tag = new BufferedImage(240, 135, BufferedImage.TYPE_INT_RGB);//绘制改变尺寸后的图tag.getGraphics().drawImage(bi, 0, 0, 240, 135, null);  //输出流BufferedOutputStream out = new BufferedOutputStream(new FileOutputStream(realPath+"//"+fileUUID+"."+fileEnd));ImageIO.write(tag, fileEnd,out);in.close();out.close();//原上传图片方法//uploadFile.transferTo(newFile);//FileUtils.copyInputStreamToFile(uploadFile.getInputStream(), newFile);//第二种原上传图片方法System.out.println("图片地址:"+realPath+"//"+fileUUID+"."+fileEnd);map.put("sign", "success");} catch (Exception e) {e.printStackTrace();map.put("sign", "error");map.put("msg", e.toString());}return map;}

一点小建议

因为java是跨语言 所以路径符最好使用/

在java中路径一般用"/"
windows中的路径一般用"\"
linux、unix中的路径一般用"/"

springMVC MultipartFile 上传图片时修改图片大小相关推荐

  1. 上传图片时,图片大小不一,设置宽高,图片拉伸,如何处理呢,我来告诉你...

    2019独角兽企业重金招聘Python工程师标准>>> 对于上传图片的烦恼,今天给你个例子,很实用的哦 这个是原来大小不一的图片 经过处理后 代码如下index.html <! ...

  2. php 限制图片大小代码,微信小程序在上传图片时如何限制大小(附代码)

    本篇文章给大家带来的内容是关于微信小程序在上传图片时如何限制大小(附代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 最近有一个微信小程序的项目,要求是上传多张图片,数量不能超过 ...

  3. java 使用Thumbnailator 上传图片 并压缩图片大小

    http://www.cnblogs.com/miskis/p/5500822.html java 上传图片 并压缩图片大小 Thumbnailator 是一个优秀的图片处理的Google开源Java ...

  4. indesign缩放图片被切割_indesign修改图片大小的操作流程

    想知道indesign修改图片大小的相关操作吗?下面就是小编整理的indesign修改图片大小的操作教程,赶紧来看看吧,希望能帮助到大家哦! indesign修改图片大小的操作流程 首先我们在左侧的工 ...

  5. php图片大小怎么改,如何批量修改图片大小/尺寸

    小编给大伙分享一个小巧实用的批量修改图片大小工具,可以批量修改图片大小尺寸,限制缩放后的图片文件大小,以满足在线照片打印的要求,或便于上传图片到网店商铺以方便您的照片展示.很是实用! 操作灰常简单的哟 ...

  6. vue使用element 上传图片,修改图片

    vue使用element 上传图片,修改图片 文章目录 vue使用element 上传图片,修改图片 前言 一.应用场景 1.上传图片并进行放大预览 2.图片上传代码 二.修改已经上传的图片,并展示到 ...

  7. 在WORD中批量修改图片大小

    今天在word中批量修改图片时发现了word一个强大的功能,不多说废话,直接附上步骤: 1.首先按一定的顺序将图片插入word当中: 2.点击"视图"----"宏&quo ...

  8. vue之原生上传图片并压缩图片大小(1)

    vue之上传图片并压缩图片大小 vue之上传图片并压缩图片大小 vue之上传图片并压缩图片大小 这里使用的是 compressorjs , 安装 npm i compressorjs 注意:这个插件是 ...

  9. ps 修改透明图片上的文字,修改图片大小,导出PNG

    修改透明图片上的文字 1.选择'矩形选框工具'(或点击M)选中要删除的部分 2.点击delete 3.如出现'无法完成请求,因为文字图层中的像素在未事先将图层栅格化之前不能修改',说明存在图层未删除. ...

最新文章

  1. 1.windows网络配置无法上网
  2. 双linux grub rescue,Grub Rescue修复方法
  3. python ssh登陆模块_Python sshh包_程序模块 - PyPI - Python中文网
  4. 【uniapp】swiper 自定义轮播图指示点
  5. Leetcode--128. 最长连续序列
  6. 【转载保存】索引文件锁LockFactory
  7. 汇编语言比C51需要效率高,汇编语言与C51语言实现跑马灯实验的比较 -
  8. [No000011A]Office Excel设置显示日期与星期
  9. c语言中如何确保一个程序是单例的_浅谈设计模式——单例模式
  10. stomp+websocket 集群问题_手把手搭建WebSocket多人在线聊天室
  11. 游戏策划学习(一)游戏研发基础
  12. 中子射线照相检测技术
  13. 【论文学习】10、物联网安全WiFi设备的监控与识别
  14. 软件工程中英对照术语表
  15. 电脑上怎么看网络丢包/网络延时
  16. 魔兽争霸III—冰封王座6级考试
  17. GIF是什么格式的文件
  18. [dp优化]个人对dp优化的理解
  19. 史上最全的javascript知识点总结,浅显易懂。
  20. 华科计算机学院专业课,华科计算机考研专业课有哪些

热门文章

  1. 安卓测试助手2.x版本
  2. Origin添加列的方法
  3. MES系统如何实现质量管理?
  4. 1213 解的个数[一中数论随堂练]
  5. 照片去隐私,说说你的建议!这一招既能保护隐私又能保证清晰
  6. 基于Beacon技术的智慧酒店解决方案
  7. 无人驾驶算法——Baidu Apollo代码解析之ReferenceLine Smoother参考线平滑
  8. 2021-06-22 hi3516ev200 按键输入 gpio_key input 驱动 device tree 设备树方式
  9. 跟我学折纸计算机教案,《学折纸》教学设计
  10. 攻防世界--MISC题之掀桌子