欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

使用Thumbnails压缩或放大图片大小(java)

发布时间:2025/3/19 编程问答 27 豆豆
生活随笔 收集整理的这篇文章主要介绍了 使用Thumbnails压缩或放大图片大小(java) 小编觉得挺不错的,现在分享给大家,帮大家做个参考.
首先看下缩放图片的核心代码,其实只有一行而已
//ins表示ByteArrayInputStream形式的图片 //scale中的数据就是缩小或者放大的比例,比如小于1则表示压缩,大于1表示放大 //out表示ByteArrayOutputStream形式的输出数据 也就是ins缩放后的图片数据 Thumbnails.of(ins).scale(0.99f).toOutputStream(out);

整体代码:

为了方便起见,我把整个代码全拿过来了,防止导错包,所以使用的话直接复制即可使用
说明我这里压缩的图片是base64格式的图片,已经去掉base64头部信息,关于如何去除头部信息已经获取图片大小可以参考以下链接

获取base64编码格式的图片大小
package com.web.framework.bbpp.module.yituhezisone.util;import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.IOException; import net.coobird.thumbnailator.Thumbnails; import sun.misc.BASE64Decoder; import sun.misc.BASE64Encoder;public class CompressImage {public static void main(String[] args) {String str = "base64编码格式的图片";CompressImage com = new CompressImage();//因为我使用的是base64编码格式的图片数据,所以需要先将base转为字节数组byte[] decode = com.decode(str);//将字节数组数据传入压缩方法中compressByteImagestr = com.compressByteImage(decode);System.out.println("压缩后的图片数据"+str);}/*** byte数组 转换为 Base64字符串*/public String encode(byte[] data) {return new BASE64Encoder().encode(data);}/*** Base64字符串 转换为 byte数组*/public byte[] decode(String base64) {try {return new BASE64Decoder().decodeBuffer(base64);} catch (IOException e) {e.printStackTrace();}return new byte[0];}public String compressByteImage(byte[] bytes) throws IOException {//先将字节数组数据转为ByteArrayInputStream 形式ByteArrayInputStream ins = new ByteArrayInputStream(bytes);ByteArrayOutputStream out = new ByteArrayOutputStream();//进行压缩 out就是压缩后的数据Thumbnails.of(ins).scale(0.99f).toOutputStream(out);//将ByteArrayOutputStream形式转为字节数组byte[] data = out.toByteArray();//将字节数组数据转为base64的格式String imageStr = encode(data);return imageStr;}

总结

以上是生活随笔为你收集整理的使用Thumbnails压缩或放大图片大小(java)的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。