一、JAVA开发之图片压缩

1、前言

        现在手机的像素都比较高,我们做了一个项目,巡检的时候都是传的图片,开始以为图片不占多大的内存,时间一久,占用的空间是最大的。进去文件夹看都是1-20MB不等的图片,这哪行。找了个java压缩图片工具类(thumbnailator),这是我试过最好用的一个图片压缩类。

2、maven依赖

<!--压缩图片工具-->
<dependency>
	<groupId>com.twelvemonkeys.imageio</groupId>
	<artifactId>imageio-jpeg</artifactId>
	<version>3.6</version>
</dependency>

3、方法使用

3.1、压缩目录下的所有图片

 压缩后的文件名保持不变,输出格式为jpg

  //你图片的物理路径目录
 String source="E:\\fileUpload";
 //压缩后放的目录
 String traget="E:\\fileUpload2";
 ThumbnailUtil.of(new File(source).listFiles(ThumbnailUtil.readFilter())).scale(1D).outputQuality(0.5D)
                .outputFormat(ThumbnailUtil.orgForm).toFiles(new File(traget), "");

3.2、压缩目录下的所有图片

 压缩后的文件名和格式保持不变

  //你图片的物理路径目录
 String source="E:\\fileUpload";
 //压缩后放的目录
 String traget="E:\\fileUpload2";	
ThumbnailUtil.of(new File(source).listFiles(ThumbnailUtil.readFilter())).scale(1D).outputQuality(0.5D)
        .outputFormat(ThumbnailUtil.orgForm).toFiles(new File(traget), "");

3.3、压缩单个图片

3.3.1、按照图片的质量去压缩,中等质量

  //你图片的物理路径
 String source="E:\\fileUpload\\01.jpg";
 //压缩后放的目录
 String traget="E:\\fileUpload2\\01.jpg";	
//压缩单个图片
ThumbnailUtil.of(new File(source)).identifyCompress(ThumbnailUtil.ratios[1])
        .toFile(new File(traget));	

3.3.2、尺寸不变,只压缩图片的质量

  //你图片的物理路径
 String source="E:\\fileUpload\\01.jpg";
 //压缩后放的目录
 String traget="E:\\fileUpload2\\01.jpg";	
//压缩单个图片
ThumbnailUtil.of(new File(source)).scale(1D).outputQuality(0.4D)

3.4、压缩MultipartFile类型图片

3.4.1 多个压缩

MultipartFile[] myFiles = ThumbnailUtil.of(myFiles)
                .identifyCompress(ThumbnailUtil.ratios[0])
                .outputFormat(ThumbnailUtil.orgForm).asMultipartFiles();

3.4.2 单个压缩

MultipartFile[] filelist = ThumbnailUtil.of(myFile)
                    .identifyCompress(ThumbnailUtil.ratios[2])
                    .outputFormat(ThumbnailUtil.orgForm).asMultipartFiles();
            MultipartFile file=filelist[0];
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值