使用google工具(推荐,压缩率高,图片清晰)

导入jar包

<dependency><groupId>net.coobird</groupId><artifactId>thumbnailator</artifactId><version>0.4.8</version></dependency>
InputStream in = new File("");
ByteArrayOutputStream out = new ByteArrayOutputStream();
//scale(比例),outputQuality(质量)
Thumbnails.of(in).scale(0.5f).outputQuality(0.25f).toOutputStream(out);
in = new ByteArrayInputStream(out.toByteArray());
重新绘制图片
InputStream in = new File("");
ByteArrayOutputStream out = new ByteArrayOutputStream();
Image image = ImageIO.read(in);
int width = image.getWidth(null);//获取宽度
int height = image.getHeight(null);//获取高度
width = new Double(width/4).intValue();//等比压缩
height = new Double(height/4).intValue();//等比压缩
BufferedImage imageBuffered = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
imageBuffered.getGraphics().drawImage(image, 0, 0, width, height, null);//重新绘制
ImageIO.write(imageBuffered, "png", out);
in = new ByteArrayInputStream(out.toByteArray());
降低分辨率压缩图片
InputStream in = new File("");
ByteArrayOutputStream out = new ByteArrayOutputStream();
BufferedImage imageBuffered = ImageIO.read(in);
Iterator<ImageWriter> iterator = ImageIO.getImageWritersByFormatName("jpeg");
ImageWriter writer = (ImageWriter)iterator.next();
ImageWriteParam imageParam = writer.getDefaultWriteParam();//获取图片默认参数
imageParam.setCompressionMode(ImageWriteParam.MODE_EXPLICIT);//设置压缩样式
imageParam.setCompressionQuality(0.1f);//设置质量
imageParam.setProgressiveMode(ImageWriteParam.MODE_DISABLED);
ColorModel colorModel = ColorModel.getRGBdefault();
imageParam.setDestinationType(new ImageTypeSpecifier(colorModel, colorModel.createCompatibleSampleModel(32, 32)));
IIOImage iImage = new IIOImage(imageBuffered, null, null);//构造容器
writer.setOutput(ImageIO.createImageOutputStream(out));
writer.write(null, iImage, imageParam);
in = new ByteArrayInputStream(out.toByteArray());
图片等比缩放
InputStream in = new File("");
ByteArrayOutputStream out = new ByteArrayOutputStream();
BufferedImage image = ImageIO.read(in);
int w0 = bufImg.getWidth();
int h0 = bufImg.getHeight();
// 获取较大的一个缩放比率作为整体缩放比率
double wRatio = 1.0 * width / w0;
double hRatio = 1.0 * height / h0;
double ratio = Math.min(wRatio, hRatio);
AffineTransformOp ato = new AffineTransformOp(AffineTransform.getScaleInstance(300, 300), null);
BufferedImage bufferimage = ato.filter(image, null);
ImageIO.write(bufferimage, "jpg", out);
in = new ByteArrayInputStream(out.toByteArray());

使用ImageIO.read();读取图片,截图保存会出现有红色的蒙板,原因是读取时有些ICC信息读不到。
→出现红色蒙版的解决方法

————————————————
版权声明:本文为CSDN博主「学习要趁早z」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_42677452/article/details/112037350

java图片压缩方法(多种)相关推荐

  1. java 图片压缩100k_Java 实现图片压缩的两种方法

    问题背景. 典型的情景:Nemo社区中,用户上传的图片免不了要在某处给用户做展示. 如用户上传的头像,那么其他用户在浏览该用户信息的时候,就会需要回显头像信息了. 用户上传的原图可能由于清晰度较高而体 ...

  2. java 图片压缩不改变分辨率

    转载:java 图片压缩不改变分辨率java压缩图片大小不改变图片分辨率_僵尸吃过跳跳糖的博客-CSDN博客_java 压缩图片分辨率 package com.cjn.util;import org. ...

  3. Android应用开发中三种常见的图片压缩方法

    Android应用开发中三种常见的图片压缩方法,分别是:质量压缩法.比例压缩法(根据路径获取图片并压缩)和比例压缩法(根据Bitmap图片压缩). 一.质量压缩法private Bitmap comp ...

  4. Java 图片压缩(Thumbnails)

    https://www.cnblogs.com/zhaosq/p/13896446.html Java 图片压缩(Thumbnails)

  5. 怎么压缩图片大小,图片压缩方法

    怎么压缩图片大小?工作中如果遇到一些体积较大的图片,尤其一些清晰度很高的图片,可能一张小尺寸的图片就有2-3M的大小,这个我们的使用打开造成很多的麻烦,例如因为超过限制大小而不能上传,打开的时候很大, ...

  6. 图片压缩怎么做?这几种图片压缩方法很方便

    怎么把图片给压缩一下呢?图片的内存如果太大,那我们不管是在发送还是保存都会不方便.发送时会非常缓慢,保存时也占据很多内存,对本来空间就不太够的电脑或手机来说是一个致命问题.缓解这方面问题我们可以将图片 ...

  7. Android图片压缩方法总结

    本文总结Android应用开发中三种常见的图片压缩方法,分别是:质量压缩法.比例压缩法(根据路径获取图片并压缩)和比例压缩法(根据Bitmap图片压缩). 第一:质量压缩方法: ? 1 2 3 4 5 ...

  8. iOS 图片压缩方法

    两种图片压缩方法 两种压缩图片的方法:压缩图片质量(Quality),压缩图片尺寸(Size). 压缩图片质量 NSData *data = UIImageJPEGRepresentation(ima ...

  9. java 图片压缩 图片添加水印 thumbnailator javafx

    应用截图 启动界面 添加图片 处理结果 项目地址 图片压缩: java 图片压缩 图片添加水印 thumbnailator javafx pom.xml <?xml version=" ...

最新文章

  1. linux环境下ntp客户端,多种操作系统NTP客户端配置
  2. SQL编程---存储过程和存储函数
  3. 职场交流:一位软件工程师的7年总结
  4. redis——对项目的一些优化方案
  5. Android 呼吸灯流程分析
  6. PowerDesigner16逆向工程生成PDM列注释(My Sql5.0模版)
  7. Vue中引入css文件
  8. mysql-debug: Thread stack overrun
  9. sql server 性能调优之 资源等待PAGEIOLATCH
  10. php 页面执行时长
  11. 非常好的免费开源网站原型图设计工具
  12. 高性能python软件开发_Python 最抢手、Java 最流行、Go 最有前途,7000 位程序员揭秘 2019 软件开发现状...
  13. 记录爬虫实战——有道翻译(反js加密)
  14. 极客巅峰2021 web opcode
  15. 新买了个redmi红米ax6s网速超快刷openwrt
  16. 模型放到gpu上训练
  17. 工信部备案新规则下,关于域名核验的相关问题
  18. 工程地质实习-工程地质 题集
  19. 8266接入华为hilink Demo之sdk编辑(二)
  20. python实现数据归一化处理的方式:(0,1)标准化

热门文章

  1. idea怎么进行c语言编程_怎么进行C语言编程,要全代码
  2. 平均值不等式证明:算数平均值、几何平均值、调和平均值大小关系证明
  3. 宇宙大小和空间零点能的关系
  4. Influxdb安全基线
  5. JAVA中的常见Bug
  6. gitlab邮箱配置 及 163邮箱发件失败
  7. 【推荐】2020-2021 AI人工智能技术领域行业研究报告大合集(58份)
  8. PMP考试 项目启动会和项目开工会议的区别(转载)
  9. [CDH官方文档]--CDH最新官方文档(最全)
  10. CocosCreator 事件阻挡和事件穿透