zoukankan      html  css  js  c++  java
  • Thumbnailator java图片压缩,加水印,批量生成缩略图

    地址:http://code.google.com/p/thumbnailator/

    1、指定大小进行缩放

    复制代码
        //size(宽度, 高度)  

    <span style="color: #008000;">/*</span><span style="color: #008000;">   </br>
     * 若图片横比200小,高比300小,不变   </br>
     * 若图片横比200小,高比300大,高缩小到300,图片比例不变   </br>
     * 若图片横比200大,高比300小,横缩小到200,图片比例不变   </br>
     * 若图片横比200大,高比300大,图片按比例缩小,横为200或高为300   </br>
     </span><span style="color: #008000;">*/</span><span style="color: #000000;">   </br>
    Thumbnails.of(</span>"images/a380_1280x1024.jpg"<span style="color: #000000;">)   </br>
            .size(</span>200, 300<span style="color: #000000;">)  </br>
            .toFile(</span>"c:/a380_200x300.jpg"<span style="color: #000000;">);  </br></br>
      
    Thumbnails.of(</span>"images/a380_1280x1024.jpg"<span style="color: #000000;">)   </br>
            .size(</span>2560, 2048<span style="color: #000000;">)   </br>
            .toFile(</span>"c:/a380_2560x2048.jpg");  </pre>
    
    复制代码

    2、按照比例进行缩放

    复制代码
    Java代码  收藏代码
    
    </span><span style="color: #008000;">//</span><span style="color: #008000;">scale(比例)  </span></br>
    Thumbnails.of("images/a380_1280x1024.jpg"<span style="color: #000000;">)   </br>
            .scale(</span>0.25f<span style="color: #000000;">)  </br>
            .toFile(</span>"c:/a380_25%.jpg"<span style="color: #000000;">);  </br>
      
    Thumbnails.of(</span>"images/a380_1280x1024.jpg"<span style="color: #000000;">)   </br>
            .scale(</span>1.10f<span style="color: #000000;">)  </br>
            .toFile(</span>"c:/a380_110%.jpg"); </pre>
    
    复制代码

    3、不按照比例,指定大小进行缩放

    //keepAspectRatio(false) 默认是按照比例缩放的  
    Thumbnails.of("images/a380_1280x1024.jpg")
    .size(
    200, 200)
    .keepAspectRatio(
    false)
    .toFile(
    "c:/a380_200x200.jpg")

    4、旋转

    复制代码
    //rotate(角度),正数:顺时针 负数:逆时针  
    Thumbnails.of("images/a380_1280x1024.jpg")
    .size(
    1280, 1024)
    .rotate(
    90)
    .toFile(
    "c:/a380_rotate+90.jpg");

    Thumbnails.of("images/a380_1280x1024.jpg")

    .size(
    1280, 1024)

    .rotate(
    -90)

    .toFile(
    "c:/a380_rotate-90.jpg");

    复制代码

    5、水印

    复制代码
        //watermark(位置,水印图,透明度)  
    Thumbnails.of("images/a380_1280x1024.jpg")
    .size(
    1280, 1024)
    .watermark(Positions.BOTTOM_RIGHT, ImageIO.read(
    new File("images/watermark.png")), 0.5f)
    .outputQuality(
    0.8f)
    .toFile(
    "c:/a380_watermark_bottom_right.jpg");

    Thumbnails.of(</span>"images/a380_1280x1024.jpg"<span style="color: #000000;">)   </br>
            .size(</span>1280, 1024<span style="color: #000000;">)  </br>
            .watermark(Positions.CENTER, ImageIO.read(</span><span style="color: #0000ff;">new</span> File("images/watermark.png")), 0.5f<span style="color: #000000;">)   </br>
            .outputQuality(</span>0.8f<span style="color: #000000;">)   </br>
            .toFile(</span>"c:/a380_watermark_center.jpg");  </pre>
    
    复制代码

    6、裁剪

    复制代码
        //sourceRegion()  

    </span><span style="color: #008000;">//</span><span style="color: #008000;">图片中心400*400的区域  </span></br>
    Thumbnails.of("images/a380_1280x1024.jpg"<span style="color: #000000;">)  </br>
            .sourceRegion(Positions.CENTER, </span>400,400<span style="color: #000000;">)  </br>
            .size(</span>200, 200<span style="color: #000000;">)  </br>
            .keepAspectRatio(</span><span style="color: #0000ff;">false</span><span style="color: #000000;">)   </br>
            .toFile(</span>"c:/a380_region_center.jpg"<span style="color: #000000;">);  </br></br>
      
    </span><span style="color: #008000;">//</span><span style="color: #008000;">图片右下400*400的区域  </span></br>
    Thumbnails.of("images/a380_1280x1024.jpg"<span style="color: #000000;">)  </br>
            .sourceRegion(Positions.BOTTOM_RIGHT, </span>400,400<span style="color: #000000;">)  </br>
            .size(</span>200, 200<span style="color: #000000;">)  </br>
            .keepAspectRatio(</span><span style="color: #0000ff;">false</span><span style="color: #000000;">)   </br>
            .toFile(</span>"c:/a380_region_bootom_right.jpg"<span style="color: #000000;">);  </br></br>
      
    </span><span style="color: #008000;">//</span><span style="color: #008000;">指定坐标  </span></br>
    Thumbnails.of("images/a380_1280x1024.jpg"<span style="color: #000000;">)  </br>
            .sourceRegion(</span>600, 500, 400, 400<span style="color: #000000;">)  </br>
            .size(</span>200, 200<span style="color: #000000;">)  </br>
            .keepAspectRatio(</span><span style="color: #0000ff;">false</span><span style="color: #000000;">)   </br>
            .toFile(</span>"c:/a380_region_coord.jpg");  </pre>
    
    复制代码

    7、转化图像格式

    复制代码
    //outputFormat(图像格式)  
    Thumbnails.of("images/a380_1280x1024.jpg")
    .size(
    1280, 1024)
    .outputFormat(
    "png")
    .toFile(
    "c:/a380_1280x1024.png");

    Thumbnails.of("images/a380_1280x1024.jpg")

    .size(
    1280, 1024)

    .outputFormat(
    "gif")

    .toFile(
    "c:/a380_1280x1024.gif");

    复制代码

    8、输出到OutputStream

        //toOutputStream(流对象)    
    OutputStream os = new FileOutputStream("c:/a380_1280x1024_OutputStream.png");
    Thumbnails.of(
    "images/a380_1280x1024.jpg")
    .size(
    1280, 1024)
    .toOutputStream(os);

    9、输出到BufferedImage

    //asBufferedImage() 返回BufferedImage  
    BufferedImage thumbnail = Thumbnails.of("images/a380_1280x1024.jpg")
    .size(
    1280, 1024)
    .asBufferedImage();
    ImageIO.write(thumbnail,
    "jpg", new File("c:/a380_1280x1024_BufferedImage.jpg"));
  • 相关阅读:
    some tips
    ORA00847: MEMORY_TARGET/MEMORY_MAX_TARGET and LOCK_SGA cannot be set together
    Chapter 01Overview of Oracle 9i Database Perfomrmance Tuning
    Chapter 02Diagnostic and Tuning Tools
    变量与常用符号
    Chapter 18Tuning the Operating System
    标准输入输出
    Trace files
    DBADeveloped Tools
    Chapter 03Database Configuration and IO Issues
  • 原文地址:https://www.cnblogs.com/jpfss/p/9167261.html
Copyright © 2011-2022 走看看