/*** 根据指定大小压缩图片** @param sourceFilePath 源图片路径 + 文件名* @param outFilePath    生成之后的图片路径 + 文件名* @param desFileSize    指定图片大小,单位kb* @return 压缩质量后的图片字节数组*/public static byte[] compressPicForScale(String sourceFilePath, String outFilePath, long desFileSize) {if (StringUtils.isEmpty(sourceFilePath)) {return null;}byte[] imageBytes = null;try {imageBytes = FileUtils.readFileToByteArray(new File(sourceFilePath));if (imageBytes == null || imageBytes.length <= 0 || imageBytes.length < desFileSize * 1024) {FileUtils.writeByteArrayToFile(new File(outFilePath), imageBytes);log.info("ImgUtil.compressPicForScale 图片无需压缩,原始大小为:{}kb, sourceFilePath:{}", imageBytes.length / 1024, sourceFilePath);return imageBytes;}long srcSize = imageBytes.length;long size = srcSize / 1024;// 自动调节精度(经验数值)double accuracy;if (size < 900) {accuracy = 0.85;} else if (size < 2047) {accuracy = 0.6;} else if (size < 3275) {accuracy = 0.44;} else {accuracy = 0.4;}while (imageBytes.length > desFileSize * 1024) {ByteArrayInputStream inputStream = new ByteArrayInputStream(imageBytes);ByteArrayOutputStream outputStream = new ByteArrayOutputStream(imageBytes.length);Thumbnails.of(inputStream).scale(accuracy).outputQuality(accuracy).toOutputStream(outputStream);imageBytes = outputStream.toByteArray();}if (outFilePath != null) {log.info("ImgUtil.compressPicForScale 图片压缩后大小:{}kb, sourceFilePath:{}", imageBytes.length / 1024, sourceFilePath);FileUtils.writeByteArrayToFile(new File(outFilePath), imageBytes);}} catch (Exception e) {log.error("图片压缩发生异常。sourceFilePath:{}, errorMessage:{}", sourceFilePath, e.getMessage(), e);}return imageBytes;}

java根据指定大小kb压缩图片相关推荐

  1. JS中通过指定大小来压缩图片

    前不久王二写了一个图片处理库,可以指定图片质量压缩图片,调用的是javaScript的原生方法 toDataURL 和 toBlob,库里有如下这些方法: 但是通过质量压缩图片有一些不足之处:无法确定 ...

  2. 上传图片到OSS,并按指定大小范围压缩图片。完整工具类+三层调用

    使用阿里的Oss服务器,做图片服务器. 项目功能为,前端,调用后端的接口,上传用户的图片! 1.controller类 @RestController @RequestMapping("/o ...

  3. 如何将图片压缩到指定大小?压缩图片大小的方法

    很多报名平台都对图片大小有固定的数值要求,所以不少小伙伴来问,怎么压缩图片200k以下(图片压缩到指定大小 图片压缩大小至指定kb以下-压缩图)?想要把图片压缩指定大小就要用到一些比较专业的工具,今天 ...

  4. 前端性能优化:使用媒体查询加载指定大小的背景图片

    日期:2013-7-8  来源:GBin1.com 直到CSS @supports被广泛支持,CSS媒体查询的使用接近于CSS中写逻辑控制.我们经常用CSS媒体查询来根据设备调整CSS属性(通常根据屏 ...

  5. 将图片压缩至指定大小Kb(Thumbnailator)

    放代码前,先唠叨唠叨,舒缓一下我的郁闷之情. 今天下午改一个后台管理系统的需求,要求上传的图片要压缩到300kb,感觉不难,就开搞. 先撩拨一下度娘,搞点货出来瞅瞅,不复杂就干脆搬砖算了. 嗯,度娘不 ...

  6. 压缩图片大小的java代码_java按比例压缩图片的源代码,用java如何把图片处理到指定大小...

    [要分析某个网页中的代码构成,需要某个结点下的内容.用此原始方法可以得到整个网页的源码.其实更简单的方法是使用 WebClient 或 HtmlUtil 等开源方式 .public class Ht ...

  7. JAVA根据指定大小压缩图片

    /*** 根据指定大小压缩图片** @param sourceFilePath 源图片路径 + 文件名(例 "D:\\image\\aa.jpg")* @param outFile ...

  8. java采用降低图片分辨率大小来压缩图片大小

    我看了网上大多数对图片的压缩都是基于对图片width和hight进行裁剪来降低图片实际大小,但这种方式容易导致图片内容的丢失,所以推荐大家采用以下这种方式 import java.awt.image. ...

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

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

  10. 电脑怎么压缩图片大小kb?图片太大怎么缩小kb?

    相信大家在平时都会使用到图片,在需要将图片上传到某些平台使用的时候应该都会遇到由于图片太大上传失败的情况,这时我们就需要先压缩图片大小后再进行使用了,那么如何快速将图片压缩呢?今天来给大家分享一款非常 ...

最新文章

  1. js 对象深拷贝_这一次,彻底理解JavaScript深拷贝
  2. POJ 1321 棋盘问题【DFS】
  3. 嘿!我用python帮我干这些事
  4. 双系统安装 Windows8和Windows Server2012
  5. 免费直播 | 特邀大厂产品战略咨询顾问,详解数据驱动产品商业化
  6. android获取apk名称_安卓逆向——APK安装流程
  7. 【LiveVideoStack线上分享】— FreeSWITCH核心架构与流程控制
  8. Spring boot (6)---SpringMVC框架和spring Boot的区别
  9. Docker学习总结(48)——Docker 四种网络模式温故
  10. UIImagePickerController选择图片发送后旋转90度的问题
  11. [Simulink]非线性系统模型建立及相轨迹
  12. KU-600变电站综合自动化系统
  13. ACM题解——贪心——卫星安装
  14. linux 主机支持远程唤醒_Linux远程开机
  15. 利用REmap绘制百度迁徙图
  16. [BAPI]如何读取采购订单PO审批状态数据-[BAPI_PO_GETRELINFO]
  17. 一个简单的物流管理系统
  18. arcgis标注转为注记后,如何批量修改注记及牵引线颜色
  19. CSS单行/多行文本溢出显示省略号(...)
  20. 小米MIUI降级刷机备份安装gms谷歌三件套

热门文章

  1. c语言 取结构体地址,结构体赋值,对用不用取地址符有些困惑?
  2. 2种方式!带你快速实现前端截图
  3. 消防工程师 5.气体灭火系统
  4. 科技爱好者周刊:第 83 期
  5. 趋势病毒软件卸载攻略
  6. 数据分析案例——航空公司客户价值分析
  7. SQL中进行去重的方法
  8. 杨涛:正解“街区制、密路网”
  9. Apache Log4j2详解
  10. Awesome Competitive Programming