zoukankan      html  css  js  c++  java
  • 图片压缩

    使用google的工具类


    <!--google图片压缩工具类-->
    <dependency>
    <groupId>net.coobird</groupId>
    <artifactId>thumbnailator</artifactId>
    <version>0.4.11</version>
    </dependency>

    import com.alibaba.fastjson.JSON;
    import org.apache.commons.lang3.StringUtils;
    
    import java.io.Serializable;
    
    public class ResultData<T> implements Serializable {
        private int code;
        private String message;
        private T data;
    
        public ResultData(int code, String message, T data) {
            this.code = code;
            this.message = message;
            this.data = data;
        }
    
        public static ResultData success(Object data) {
            return new ResultData(0, "操作成功", data);
        }
    
        public static ResultData fail(String message) {
            if (StringUtils.isBlank(message)) {
                message = "操作失败";
            }
            return new ResultData(-1, message, null);
        }
    
        public Boolean isSuccess() {
            return 0 == code;
        }
    
        public Boolean isFail() {
            return -1 != code;
        }
    
    
        public int getCode() {
            return code;
        }
    
        public void setCode(int code) {
            this.code = code;
        }
    
        public String getMessage() {
            return message;
        }
    
        public void setMessage(String message) {
            this.message = message;
        }
    
        public T getData() {
            return data;
        }
    
        public void setData(T data) {
            this.data = data;
        }
    }
    
     
    /**
     * 图片压缩大小工具类:使用google提供的thumbnailator包进行处理
     */
    public class ImageCompressionUtil {
    
        /**
         * @param sourceFilePath   源图片文件完整路径:/Usr/source/image/header.jpg
         * @param targetFileDir    生成图片具体地址:/Usr/target/image/
         * @param targetfileName   生成文件名称:targetHeader
         * @param targetFileSuffix 生成文件别名:png
         * @param scale            图片长度:0~1
         * @param quality          压缩比例:0~1
         * @return
         */
        public static ResultData<String> compressionImage(String sourceFilePath, String targetFileDir, String targetfileName, String targetFileSuffix, float scale, float quality) {
            String targetFile;
            try {
                File sourceFile = new File(sourceFilePath);
                if (!sourceFile.isFile()) {
                    return ResultData.fail("源图片地址必须是完整图片路径+图片名称");
                }
                if (!sourceFile.exists()) {
                    return ResultData.fail("源图片不存在");
                }
                File targetFilePath = new File(targetFileDir);
                if (!targetFilePath.isDirectory()) {
                    return ResultData.fail("targetFileDir必须是路径");
                }
                if (scale <= 0 || scale > 1) {
                    return ResultData.fail("图片长度0~1");
                }
                if (quality <= 0 || quality > 1) {
                    return ResultData.fail("压缩比例0~1");
                }
    
                StringBuffer stringBuffer = new StringBuffer();
                stringBuffer.append(targetFileDir).append(targetfileName).append(".").append(targetFileSuffix);
                Thumbnails.of(sourceFilePath)
                        .scale(scale)
                        .outputQuality(quality)
                        .toFile(stringBuffer.toString());
                return ResultData.success(stringBuffer);
            } catch (Exception ex) {
                ex.printStackTrace();
                return ResultData.fail("源图片压缩异常");
            }
        }
    }


     

  • 相关阅读:
    PostgreSQL杂记页
    程序员给女朋友周年纪念的浪漫
    实现乐鑫esp8266的无线OTA升级,实现远程在线升级固件
    XAOP的使用示范例子
    XPage的使用示范例子
    Python手势识别与控制
    Python人体肤色检测
    基于Opencv自带BP网络的车标简易识别
    iOS 自定义转场动画
    Python实时语音识别控制
  • 原文地址:https://www.cnblogs.com/use-D/p/12622659.html
Copyright © 2011-2022 走看看