首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

Thumbnailator 圖片處理框架全攻略:從入門到實戰

     編輯:Java 相關知識

為什麼選擇 Thumbnailator?

Java 原生圖片處理 API 繁瑣且效果一般,Thumbnailator 提供了極簡的鏈式 API,兩三行代碼即可完成縮放、裁剪、水印、旋轉、格式轉換等操作,效果遠超原生 API,且持續維護更新。

核心功能演示

原圖:

1. 指定尺寸縮放

// size(寬, 高) - 保持比例縮放至指定矩形範圍內
Thumbnails.of("images/a380_1280x1024.jpg")
    .size(200, 300)
    .toFile("c:/a380_200x300.jpg");

結果:

2. 按比例縮放

// scale(比例) - 0.5 為縮小一半,2 為放大兩倍
Thumbnails.of("images/a380_1280x1024.jpg")
    .scale(0.5f)
    .toFile("c:/a380_half.jpg");

3. 區域裁剪

// sourceRegion(x, y, 寬, 高) - 裁剪指定區域
Thumbnails.of("images/a380_1280x1024.jpg")
    .sourceRegion(600, 500, 400, 400)
    .size(200, 200)
    .toFile("c:/a380_crop.jpg");

4. 旋轉

// rotate(角度) - 正數順時針,負數逆時針
Thumbnails.of("images/a380_1280x1024.jpg")
    .rotate(90)
    .toFile("c:/a380_rotated.jpg");

5. 添加水印

// watermark(位置, 水印圖, 透明度)
Thumbnails.of("images/a380_1280x1024.jpg")
    .watermark(Positions.BOTTOM_RIGHT, 
               ImageIO.read(new File("images/watermark.png")), 
               0.5f)
    .toFile("c:/a380_watermarked.jpg");

水印效果:

6. 格式轉換

// outputFormat(格式) - 支持 jpg, png, gif, bmp 等
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");

7. 輸出到 OutputStream

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

8. 輸出到 BufferedImage

BufferedImage thumbnail = Thumbnails.of("images/a380_1280x1024.jpg")
    .size(1280, 1024)
    .asBufferedImage();
ImageIO.write(thumbnail, "jpg", new File("c:/a380_buffered.jpg"));

進階技巧

  • 批量處理:Thumbnails.of(directory).size(100,100).toFiles(Rename.NO_CHANGE)
  • 鏈式組合:可任意組合上述操作
  • 輸出品質控制:.outputQuality(0.8f) 平衡體積與清晰度
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved