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

    Thumbnails

    java图形图像处理库  Thumbnails 

    点击打开链接

    加载图片源

    
    
    1. File file = new File("/Users/qiangzi/data/img","beauty.jpg");
    2. Builder<File> builder = Thumbnails.of(file);

    缩放

    
    
    1. builder = builder.scale(0.9);   //参数是浮点数,大于1表示放大,小于1表示缩小

    质量压缩

    
    
    1. builder.outputQuality(0.9); //参数是浮点数,0-1之间

    剪裁

    
    
    1. builder.sourceRegion(100, 100, 300, 300);    
    2. builder.sourceRegion(Positions.CENTER, 200, 200);

    根据宽度来缩放

    
    
    1. builder.width(500);

    根据高度来缩放

    
    
    1. builder.height(500);

    在调整尺寸时保持比例

    
    
    1. builder.keepAspectRatio(true);  //默认为true,如果要剪裁到特定的比例,设为false即可

    根据宽度和高度进行缩放

    
    
    1. builder.size(600, 700);
    2. //如果设置了keepAspectRatio(true),将按比例进行缩放,否则将强制按尺寸输出
    3. 缩放策略:
    4. 如果宽度缩放比>高度缩放比就以宽度来缩放,反之以高度缩放

    将图片放入内存

    
    
    1. File file2 = new File("/Users/qiangzi/data/img","logo.png");
    2. BufferedImage bufferedImage = Thumbnails.of(file2).scale(1.0).outputQuality(1.0).asBufferedImage();
    3. *必须要指定scale

    加水印

    
    
    1. builder.watermark(Positions.BOTTOM_RIGHT, bufferedImage, 1.0f);
    2. //第一个参数是加水印的位置
    3. //第二个参数是要加水印的图片
    4. //第三个参数是水印图片的透明度
    5. 经过测试:gif图片的彩色会变成黑白,所以尽量使用jpgpng图片吧

    输出图片,不管对图片进行什么操作,只有输出才能看到效果

    
    
    1. builder.toFile(File file);

    *注意:scale、width|height、size三者不能同时共存,但必须要有一个

    链式调用案例

    
    
    1. //将原图缩放到宽度为500,压缩质量90%
    2. Thumbnails.of(file).width(500).outputQuality(0.9).toFile(file);
    3. //将原图按比例缩放,最宽300,最高400,不进行质量压缩
    4. Thumbnails.of(file).size(300, 400).outputQuality(1.0).toFile(file);
  • 相关阅读:
    nginx构建https
    安装mysql的遇到的问题
    docker mysql 2059
    centos7 安装chrome
    谷歌浏览器启动参数
    php-webdriver:PHP控制浏览器动作, php web驱动, PHP实现自动化, php webdriver 教程, A php client for webdriver.
    nginx转发
    nginx变量与实列
    mysql 语句
    frp 内网穿透配置
  • 原文地址:https://www.cnblogs.com/feiwenstyle/p/9592488.html
Copyright © 2011-2022 走看看