Java图片压缩 wangedit3图片压缩。 前后端压缩图片

8 篇文章 0 订阅

首先咱们看一下后端压缩

1、需要用到thumbnailator 插件

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

2、压缩过程非常简单调用一下方法即可

      //开始缩放图片
            InputStream is = new FileInputStream(newfile);
            BufferedImage bi = ImageIO.read(is);
            int width = bi.getWidth();
            System.out.println("111---"+width);
先拿到这个图片文件。看一下尺寸。需不需要缩放。


如果需要缩放。 执行下面的代码

文件路径:fileFolder + File.separator + randStr + ImgName
质量:scale  

尺寸:outputQuality

输出路径:toFile 这里选择了覆盖

尺寸跟质量 约靠近1越保真

   Thumbnails.of(fileFolder + File.separator + randStr + ImgName)
                        .scale(0.5f)
                        .outputQuality(0.7f)
                        .toFile(fileFolder + File.separator + randStr + ImgName);

3、压缩成功后返回wangedit所规定的上传图片返回格式

     Map<String, Object> map = new HashMap();
            map.put("errno", 0);

            List<String> list = new ArrayList<>();
            list.add(strDirPath);
            map.put("data", list);
            //map.put("FilePath", fileFolder + File.separator + randStr + ImgName);
            JSONObject json = new JSONObject(map);
            response.getWriter().print(json.toJSONString());

 

 

前端图片压缩。 如果光上传到后端。后端压缩的话。 会比较慢。所以在前端也进行压缩

1、引入前端压缩JS文件 (LRZ压缩)

GIT的下载地址

https://github.com/think2011/localResizeIMG

<script src="${ctxPath}/layer/lrz.all.bundle.js"></script>

 

2、wangedit3自定义上传

 editor1.customConfig.customUploadImg = function (files, insert) {
        // files 是 input 中选中的文件列表
        lrz(files[0])
            .then(function (rst) {
                console.log(rst.file);
                var formData = new FormData();
                formData.append("file", rst.file);
                $.ajax({
                    url: "/imgup/upLoad/fileUpload",
                    type: "POST",
                    data: formData,
                    contentType: false,
                    processData: false,
                    success: function (data) {
                        insert(data.data[0]);
                    },
                    error: function () {
                        alert("上传失败!");
                    }
                });
            })
            .catch(function (err) {
                // 处理失败会执行
                console.log(rst);
            })
            .always(function () {
                // 不管是成功失败,都会执行
                console.log(rst);
            });
    }

 

这样就压缩成功啦!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值