• 图片压缩


    使用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("源图片压缩异常");
            }
        }
    }


     

  • 相关阅读:
    一些端口
    outlook 的微软手册
    目录摘要
    L2TP的包过滤规则
    outlook 的外出时助理程序对外部邮箱不起作用。1个解决办法和另外一个可能性
    用editplus 正则表达式修改联系人表
    Cisco NAT的理解。
    outlook 2003 无法记住密码
    ERD commander 2005的下载地址。
    outlook 2003启用日志记录排除故障。
  • 原文地址:https://www.cnblogs.com/use-D/p/12622659.html
Copyright © 2020-2023  润新知