Java生成微縮圖

Thumbnailator 是一個爲Java界面更流暢的縮略圖生成庫。從API提供現有的圖像文件和圖像對象的縮略圖中簡化了縮略過程,兩三行代碼就可以從現有圖片生成縮略圖,且容許微調縮略圖生成,同時保持了須要寫入到最低限度的代碼量。同時還支持根據一個目錄批量生成縮略圖。 java

版本:thumbnailator-0.4.2.jar git

API文檔

原圖以下: 
 

一、指定大小進行縮放 github

//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"); 

 

二、按照比例進行縮放 spa

//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");

 

三、不按照比例,指定大小進行縮放 code

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

 

四、旋轉 orm

//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");

 

五、水印 對象

//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"); 

 

六、裁剪 blog

//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"); 

 

七、轉化圖像格式 圖片

//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");  

 

八、輸出到OutputStream 文檔

//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"));  
相關文章
相關標籤/搜索