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);
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章