java图片压缩方法(多种)
使用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图片压缩方法(多种)相关推荐
- java 图片压缩100k_Java 实现图片压缩的两种方法
问题背景. 典型的情景:Nemo社区中,用户上传的图片免不了要在某处给用户做展示. 如用户上传的头像,那么其他用户在浏览该用户信息的时候,就会需要回显头像信息了. 用户上传的原图可能由于清晰度较高而体 ...
- java 图片压缩不改变分辨率
转载:java 图片压缩不改变分辨率java压缩图片大小不改变图片分辨率_僵尸吃过跳跳糖的博客-CSDN博客_java 压缩图片分辨率 package com.cjn.util;import org. ...
- Android应用开发中三种常见的图片压缩方法
Android应用开发中三种常见的图片压缩方法,分别是:质量压缩法.比例压缩法(根据路径获取图片并压缩)和比例压缩法(根据Bitmap图片压缩). 一.质量压缩法private Bitmap comp ...
- Java 图片压缩(Thumbnails)
https://www.cnblogs.com/zhaosq/p/13896446.html Java 图片压缩(Thumbnails)
- 怎么压缩图片大小,图片压缩方法
怎么压缩图片大小?工作中如果遇到一些体积较大的图片,尤其一些清晰度很高的图片,可能一张小尺寸的图片就有2-3M的大小,这个我们的使用打开造成很多的麻烦,例如因为超过限制大小而不能上传,打开的时候很大, ...
- 图片压缩怎么做?这几种图片压缩方法很方便
怎么把图片给压缩一下呢?图片的内存如果太大,那我们不管是在发送还是保存都会不方便.发送时会非常缓慢,保存时也占据很多内存,对本来空间就不太够的电脑或手机来说是一个致命问题.缓解这方面问题我们可以将图片 ...
- Android图片压缩方法总结
本文总结Android应用开发中三种常见的图片压缩方法,分别是:质量压缩法.比例压缩法(根据路径获取图片并压缩)和比例压缩法(根据Bitmap图片压缩). 第一:质量压缩方法: ? 1 2 3 4 5 ...
- iOS 图片压缩方法
两种图片压缩方法 两种压缩图片的方法:压缩图片质量(Quality),压缩图片尺寸(Size). 压缩图片质量 NSData *data = UIImageJPEGRepresentation(ima ...
- java 图片压缩 图片添加水印 thumbnailator javafx
应用截图 启动界面 添加图片 处理结果 项目地址 图片压缩: java 图片压缩 图片添加水印 thumbnailator javafx pom.xml <?xml version=" ...
最新文章
- linux环境下ntp客户端,多种操作系统NTP客户端配置
- SQL编程---存储过程和存储函数
- 职场交流:一位软件工程师的7年总结
- redis——对项目的一些优化方案
- Android 呼吸灯流程分析
- PowerDesigner16逆向工程生成PDM列注释(My Sql5.0模版)
- Vue中引入css文件
- mysql-debug: Thread stack overrun
- sql server 性能调优之 资源等待PAGEIOLATCH
- php 页面执行时长
- 非常好的免费开源网站原型图设计工具
- 高性能python软件开发_Python 最抢手、Java 最流行、Go 最有前途,7000 位程序员揭秘 2019 软件开发现状...
- 记录爬虫实战——有道翻译(反js加密)
- 极客巅峰2021 web opcode
- 新买了个redmi红米ax6s网速超快刷openwrt
- 模型放到gpu上训练
- 工信部备案新规则下,关于域名核验的相关问题
- 工程地质实习-工程地质 题集
- 8266接入华为hilink Demo之sdk编辑(二)
- python实现数据归一化处理的方式:(0,1)标准化