中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java圖片處理開源框架Thumbnailator

發布時間:2020-10-10 04:37:33 來源:腳本之家 閱讀:332 作者:wangpeng047 欄目:編程語言

圖片處理是當今軟件開發中非常重要的一環,然而處理圖片的開源框架卻并不多。現金網上流傳的Java處理圖片的代碼,雖然可對圖片進行簡單處理,但效果并不理想。雖然也有些其他解決方案,但都擺脫不了繁瑣,使用起來十分不方便。
為了解決這個問題,我也是在網上找了好久,看了很多資料,功夫不負有心人,最終找到了一個處理圖片十分棒的開源框架。特此拿出來與大家分享。

Thumbnailator 是一個優秀的圖片處理的Google開源Java類庫。處理效果遠比Java API的好。從API提供現有的圖像文件和圖像對象的類中簡化了處理過程,兩三行代碼就能夠從現有圖片生成處理后的圖片,且允許微調圖片的生成方式,同時保持了需要寫入的最低限度的代碼量。還支持對一個目錄的所有圖片進行批量處理操作。
支持的處理操作:圖片縮放,區域裁剪,水印,旋轉,保持比例。

另外值得一提的是,Thumbnailator至今仍不斷更新,怎么樣,感覺很有保障吧!

下面我們介紹下如何使用Thumbnailator

原圖:

Java圖片處理開源框架Thumbnailator

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

Java圖片處理開源框架Thumbnailator

Java圖片處理開源框架Thumbnailator

5、水印

//watermark(位置,水印圖,透明度) 
Thumbnails.of("images/a380_1280x1024.jpg") 
  .size(1280,1024) 
  .watermark(Positions.BOTTOM_RIGHT,ImageIO.read(newFile("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(newFile("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"); 

Java圖片處理開源框架Thumbnailator

Java圖片處理開源框架Thumbnailator

Java圖片處理開源框架Thumbnailator

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(流對象) 
OutputStreamos=newFileOutputStream("c:/a380_1280x1024_OutputStream.png"); 
Thumbnails.of("images/a380_1280x1024.jpg") 
  .size(1280,1024) 
  .toOutputStream(os); 

9、輸出到BufferedImage

//asBufferedImage()返回BufferedImage 
BufferedImagethumbnail=Thumbnails.of("images/a380_1280x1024.jpg") 
  .size(1280,1024) 
  .asBufferedImage(); 
ImageIO.write(thumbnail,"jpg",newFile("c:/a380_1280x1024_BufferedImage.jpg")); 

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

苍溪县| 黎川县| 台湾省| 长阳| 大余县| 霍山县| 交口县| 聂荣县| 庆元县| 额尔古纳市| 海兴县| 海南省| 崇信县| 凤城市| 永定县| 宁乡县| 松潘县| 高邑县| 于都县| 胶南市| 织金县| 资溪县| 铁岭市| 吐鲁番市| 双柏县| 韶关市| 宁海县| 娄烦县| 疏附县| 平潭县| 广河县| 吉首市| 道真| 郴州市| 吉木萨尔县| 布拖县| 阿鲁科尔沁旗| 上蔡县| 剑阁县| 永年县| 崇仁县|