1、指定大小進行縮放
//size(寬度, 高度)
/*
* 若圖片橫比200小,高比300小,不變
* 若圖片橫比200小,高比300大,高縮小到300,圖片比例不變
* 若圖片橫比200大,高比300小,橫縮小到200,圖片比例不變
* 若圖片橫比200大,高比300大,圖片按比例縮小,橫爲200或高爲300
*/
Thumbnails.of("images/a380_1280x1024.jpg")
.size(200, 300)
.toFile("c:/a380_200x300.jpg");
Thumbnails.of("images/a380_1280x1024.jpg")
.size(2560, 2048)
.toFile("c:/a380_2560x2048.jpg");
2、按照比例進行縮放
//scale(比例)
Thumbnails.of("images/a380_1280x1024.jpg")
.scale(0.25f)
.toFile("c:/a380_25%.jpg");
Thumbnails.of("images/a380_1280x1024.jpg")
.scale(1.10f)
.toFile("c:/a380_110%.jpg");
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("images/a380_1280x1024.jpg")
.size(1280, 1024)
.watermark(Positions.CENTER, ImageIO.read(new File("images/watermark.png")), 0.5f)
.outputQuality(0.8f)
.toFile("c:/a380_watermark_center.jpg");
6、裁剪//sourceRegion()
//圖片中心400*400的區域
Thumbnails.of("images/a380_1280x1024.jpg")
.sourceRegion(Positions.CENTER, 400,400)
.size(200, 200)
.keepAspectRatio(false)
.toFile("c:/a380_region_center.jpg");
//圖片右下400*400的區域
Thumbnails.of("images/a380_1280x1024.jpg")
.sourceRegion(Positions.BOTTOM_RIGHT, 400,400)
.size(200, 200)
.keepAspectRatio(false)
.toFile("c:/a380_region_bootom_right.jpg");
//指定座標
Thumbnails.of("images/a380_1280x1024.jpg")
.sourceRegion(600, 500, 400, 400)
.size(200, 200)
.keepAspectRatio(false)
.toFile("c:/a380_region_coord.jpg");
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"));
以下代碼親測:
public static void main(String[] args) throws IOException {
private static String basePath = Thread.currentThread().getContextClassLoader().getResource("").getPath();//classpath路徑
Thumbnails.of(new File("C:/Users/THINK/Desktop/ceshi2.png"))
.size(200, 200).watermark(Positions.BOTTOM_RIGHT,
ImageIO.read(new File(basePath+"/12311.png")), 0.25f) // 12311.png是要添加的水印圖片
.outputQuality(0.8f).toFile("C:/Users/THINK/Desktop/ceshi23.png");
System.out.println("執行完成===");
}