导入依赖

      <dependency><groupId>net.coobird</groupId><artifactId>thumbnailator</artifactId><version>0.4.8</version></dependency>

代码

package com.asx.hyd.non.trs;import net.coobird.thumbnailator.Thumbnails;import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.*;
import java.util.Random;public class Test {public static void main(String[] args) throws FileNotFoundException, UnsupportedEncodingException {File file = new File("/Users/4paradigm/Desktop/11112.jpeg");compressImage(file);}public static InputStream compressImage(File file) {InputStream inputStream = null;try {FileInputStream fileInputStream = new FileInputStream(file);inputStream = fileInputStream;BufferedImage image = ImageIO.read(file);int width = image.getWidth();int height = image.getHeight();int newHeight = 0;int newWidth = 0;if (width > 900) {newWidth = 1360;newHeight = height * 1360 / width;//按指定大小把图片进行缩和放(会遵循原图高宽比例)ByteArrayOutputStream outputStream = new ByteArrayOutputStream();ImageIO.write(image, "jpg", outputStream);byte[] bytes = outputStream.toByteArray();ByteArrayOutputStream out = new ByteArrayOutputStream(bytes.length);Thumbnails.of(inputStream).size(newWidth, newHeight).toOutputStream(out);//变为1360 * 对应比例,遵循原图比例缩放byte[] b = out.toByteArray();//将图片写到本地BufferedOutputStream stream=null;Random random = new Random(25);int i = random.nextInt(1000);String randomNum= String.valueOf(i);String tagFileName="/Users/4paradigm/Desktop/"+File.separator+"压缩后的照片"+randomNum+"22.jpeg";File fileout = new File(tagFileName);FileOutputStream fileOutputStream = new FileOutputStream(fileout);stream = new BufferedOutputStream(fileOutputStream);stream.write(b);stream.close();System.out.println("----------------压缩图片尺寸后大小-------------: " + b.length/1024+"K");inputStream = new ByteArrayInputStream(out.toByteArray());}} catch (IOException e) {e.printStackTrace();}return inputStream;}
}

Thumbnailator的简介和使用范例

https://www.jianshu.com/p/ad8af8214e60
https://blog.csdn.net/qq_34839150/article/details/109903432

使用Thumbnailator压缩照片相关推荐

  1. Linux下命令行压缩照片或图片的脚本 (ImageMagick使用心得,convert,import,display实例)

    from: Linux下命令行压缩照片或图片的脚本 (ImageMagick使用心得,convert,import,display实例) 在认识ImageMagick之前,我使用的图像浏览软件是Kui ...

  2. 压缩照片怎么压缩?分享一个好用的方法

    说到压缩图片,相信大家都不陌生.图像压缩是许多人的共同要求.比如考试照片,一般对图片大小有明确的要求,一般要求上传的图片大小控制在20K以内.如果小伙伴们接触过做网站模块或者一些程序应用,对与其中页面 ...

  3. 快速批量压缩照片到指定大小工具,照片图片批量压缩实现方法,批量压缩工具

    在工作中,会遇到在某些系统要上传照片,但是对于上传的照片大小有限制,比如限制大小不能超过1MB等,而外业拍摄的照片往往会超过限制的大小,那么这时就需要对照片进行压缩.但是外业照片数据巨大,人工逐张操作 ...

  4. 手机怎么压缩照片?手机压缩照片方法分享

    怎么用自己的手机来把照片给压缩的小一点呢?很多小伙伴出门在外的时候,遇到需要传输照片,而手机里的照片内存太大上传不了,身边又没有电脑,怎么用手机来压缩照片呢?出现这种问题最多的就是在报名网站上传证件照 ...

  5. 手机如何压缩照片?压缩方法分享

    怎么用手机来压缩照片呢?大家在使用照片的时候,也会遇到很多问题,有的是照片的格式不对,有的是照片的内存太大上传不了,或者是占用了太大的内存,针对照片内存太大我们怎么才能将它们给压缩一下呢?很多小伙伴不 ...

  6. 怎么压缩照片内存大小?网上如何压缩照片?

    现在我们储存的照片都很大,非常不方便,有没有照片压缩在线处理的方法呢?其实使用 照片在线压缩工具就可以做到,压缩啦的照片在线压缩功能,用起来特别的简单,一起学习一下吧. 1.选择图片压缩,上传照片. ...

  7. 前端图片处理 - Photoshop压缩照片 / collagelt轻松拼接照片墙

    文章目录 压缩照片 照片墙 压缩照片 照片墙 使用 collagelt 软件 自取 http://www.dayanzai.me/collageit-pro.html?hmhyvq=h8n4h& ...

  8. 如何压缩照片到30kb以下?三个方法

    如何压缩照片到30kb以下?随着网络的发展,我们经常要上传一些照片到网上,如公务员考试,教师招聘等,而且要求上传的照片大小不超过30kb,我们如何把照片压缩到30kb以下呢?现在很多平台上传图片时都有 ...

  9. 怎么压缩照片的大小?学会这几种方法随意压缩!

    怎么压缩照片的大小?这个问题越来越迫切了,因为我们日常和照片打交道的情况越来越多了.我们发现现在很多平台对照片的大小都是有限制的,有的平台会自动压缩我们上传的图片,有的平台是直接提示无法上传,这时就需 ...

最新文章

  1. 工作中遇到的懒加载问题
  2. [小明学Shader]1.Diffuse
  3. sklearn API 文档 - 0.18 中文翻译
  4. memcachedb 加 memcached engine无法提高 示例检索的查询速度
  5. 6台WEBLOGIC集群备份方案的讨论
  6. easyui datagrid
  7. [密码学基础][每个信息安全博士生应该知道的52件事][Bristol52]41所有的侧信道分析都是能量分析吗
  8. c语言 从文件读入数组,C++ 将一个文件读入数组再读出数组的方法
  9. 是什么让你踏上了程序员的道路?
  10. 计算机怎么不用鼠标,技巧:如何仅用键盘而不用鼠标(包括任何指针触摸设备)优雅地使用计算机?...
  11. 建站篇-数据库-修改默认users表
  12. 解决word中公式插入后行间距变大,和文字不统一的问题
  13. linux安装智能输入法,Ubuntu中文智能拼音输入法配置
  14. Banner本地图片轮播图
  15. 计算机组成原理_选择
  16. 什么是AUTOSAR规范?
  17. 【经验分享】AVI文件打开只有音频无视频的解决方案
  18. 为什么你该学习编程了?
  19. 使用CMD更改IP地址
  20. 2006年世界杯——巴西队最后一次世界冠军

热门文章

  1. java message_Java Message System简介
  2. 摆脱冷气_摆脱匿名类
  3. Elasticsearch SQL
  4. 前9个免费的Java流程监视工具以及如何选择一种
  5. 为特使构建控制平面的指南-为可插入性构建
  6. Apache Lucene 7.0即将发布!
  7. 设计模式 工厂方法_使用工厂方法模式设计最佳实践
  8. spring本地化默认英文_Spring3国际化和本地化
  9. jms 如何测试_使用JMSTester对JMS层进行基准测试
  10. gradle spring_用于Spring应用程序的Gradle原型