• Java使用thumbnailator进行图片压缩处理


    -- 添加依赖

    <!-- 图片缩略图 -->
    <dependency>
    <groupId>net.coobird</groupId>
    <artifactId>thumbnailator</artifactId>
    <version>0.4.8</version>
    </dependency>

    -- 测试代码类

    import java.awt.image.BufferedImage;
    import java.io.File;
    import java.io.IOException;
    import java.math.BigDecimal;
    
    import javax.imageio.ImageIO;
    
    import net.coobird.thumbnailator.Thumbnails;
    
    public class ImageTest {
    
    public static void main(String[] args) {
    try {
    commpressPicCycle("C:\\Users\\Justin\\Desktop\\下载\\temp\\IMG_0004.JPG",1024,0.8);
    } catch (IOException e) {
    e.printStackTrace();
    }
    }
    // 压缩图片
    private static void commpressPicCycle(String desPath, long desFileSize, double accuracy) throws IOException {
    System.out.println("压缩开始。。。");
    File srcFileJPG = new File(desPath);
    long srcFileSizeJPG = srcFileJPG.length();
    System.out.println(srcFileSizeJPG);
    // 2、判断大小,如果小于1M,不压缩;如果大于等于1M,压缩
    if (srcFileSizeJPG <= desFileSize * 1024) {
    return;
    }
    // 计算宽高
    BufferedImage bim = ImageIO.read(srcFileJPG);
    int srcWdith = bim.getWidth();
    int srcHeigth = bim.getHeight();
    int desWidth = new BigDecimal(srcWdith).multiply(new BigDecimal(accuracy)).intValue();
    int desHeight = new BigDecimal(srcHeigth).multiply(new BigDecimal(accuracy)).intValue();
    
    Thumbnails.of(desPath).size(desWidth, desHeight).outputQuality(accuracy).toFile(desPath);
    System.out.println("压缩结束。。。");
    commpressPicCycle(desPath, desFileSize, accuracy);
    }
    }
  • 相关阅读:
    java开发中的重中之重-------mysql(基础篇)
    开发中的重点-----设计模式
    java 不可不知的数据库知识-----事物
    redis 入门笔记
    转 Java对日期Date类进行加减运算一二三
    Ajax 中的高级请求和响应
    Ajax之基础总结
    Spring中的国际化资源以及视图跳转
    javascript基础总结
    SpringMVC的表单标签
  • 原文地址:https://www.cnblogs.com/funian/p/16331389.html
Copyright © 2020-2023  润新知