Java圖像處理Thumbnails庫的使用

Java圖像處理Thumbnails庫的使用


Thumbnails簡介

Thumbnailator是一個優秀的圖片處理的Google開源類庫,處理圖片效果比Java API的好,能夠用於圖片縮放,裁剪,加水印等。目前任不斷更新。質量比較有保證。java

Maven引入

咱們在使用一下的語句來引入Thumbnails庫數組

<dependency>
            <groupId>net.coobird</groupId>
            <artifactId>thumbnailator</artifactId>
            <version>0.4.8</version>
    </dependency>

Thumbnails加載圖片

Thumbnails加載圖片支持多樣化形式。有如下的集中maven

  • URL數組
  • File數組
  • String文件全路徑數組
  • BufferedImage數組
  • InputStream數組

按照比例縮放圖片

Thumbnails.of(path)
                .scale(0.5)
                .toFile(tmepPath);

執行上述代碼,圖片會被縮小50%。scale(double):是縮略圖的縮放係數。取值範圍是[0,1]。
若是咱們不想按照比例縮放圖片,也能夠指定具體的大小來縮放圖片ui

Thumbnails.of(path)
                .size(200,200)
                .toFile(tmepPath);

須要注意的一點就是scale()和size()不能同時使用code

保持長寬比例縮放圖片

Thumbnails有一個方法keepAspectRatio()方法是用來保持圖片的長寬比例,默認爲true,若是設置成false。強行輸出的話,會形成圖片可能會變形。圖片

Thumbnails.of(path)
                 .size(160,160)
                 .keepAspectRatio(false)
               .toFile(tempPath);

上述代碼中,若是原圖不是正方形,則輸出依舊爲160160,可是圖片會變形。
但若是在keepAspectRatio()在默認狀況下,原圖是正方形,則輸出圖片正常爲160
160。圖片處理

添加水印

添加水印主要用到watermark()方法。watermaker的方法簽名入下所示it

public Thumbnails.Builder<T> watermark(Watermark var1)

簡單的加水印的方法。Watermark是Thumbnails內置的一個類,類的成員包括,位置,圖片,縮放的大小。一般指定了一個Watermarker類也就指定了水印大小和位置。io

public Thumbnails.Builder<T> watermark(BufferedImage var1)

只有一個BufferedImage參數,也就是將該水印圖片覆蓋到目標圖片中,默認居中圖像處理

public Thumbnails.Builder<T> watermark(BufferedImage var1, float var2)

指定大小的水印

public Thumbnails.Builder<T> watermark(Position var1, BufferedImage var2, float var3)

指定大小和位置的水印

File watermark = new File("water.png");
BufferedImage watermarkBufferedImage = Thumbnails.of(watermark).scale(1.0).outputQuality(1.0).asBufferedImage();
Thumbnails.of("pic.jpg")
    .scale(1)
    .watermark(Positions.TOP_RIGHT, watermarkBufferedImage, 1.0f)
    .toFile("pic2.jpg");

裁剪圖片

裁剪圖片的方法

Thumbnails.Builder<T> sourceRegion(int var1, int var2, int var3, int var4)
public Thumbnails.Builder<T> sourceRegion(Position var1, int var2, int var3)
public Thumbnails.Builder<T> sourceRegion(Rectangle var1)
相關文章
相關標籤/搜索