1. 程式人生 > >檔案系統【圖片處理】(基於thumbnailator)典藏版-壹

檔案系統【圖片處理】(基於thumbnailator)典藏版-壹

很多系統開發中都會碰到檔案相關的處理,最近順手開發一個小型檔案系統的過程中碰到圖片縮圖的需求,需要在顯示的時候提供縮圖,下載的時候提供原圖,大家直接想到的可能是java自帶的圖片處理類,但是處理過於複雜,無法滿足需求,特別是在水印等方面支援的不太好,老樣子,直接發輪子,接好了~

簡單介紹下今天的輪子吧:

thumbnailator:

  • google開發並維護
  • github開源
  • 不依賴於外部庫
  • 操作超級簡單(真的超級簡單)

action:

ONE.按照原圖縮小(原圖001.jpg-->002.jpg):

Thumbnails.of(new File("F://001.jpg"))
              .size(500, 500)
              .toFile(new File("F://002.jpg"));

原圖大小:6848 KB --> 42 KB 新圖(比例不變,見下圖)


TWO.按照原圖放大(原圖001.jpg-->002.jpg):

Thumbnails.of(new File("F://002.jpg"))
              .size(1500, 1500)
              .toFile(new File("F://003.jpg"));

原圖大小:42 KB --> 174 KB 新圖(比例不變,如下圖)


除了便捷的放大縮小,直接生成檔案之外。
還可以轉換檔案格式、支援直接生成輸出流等等,程式碼:

OutputStream os = ...;
        
Thumbnails.of("F://001.jpg")
        .size(200, 200)
        .outputFormat("png")
        .toOutputStream(os);

相比原有的方案是不是賊方便,基本上程式碼不超過5行,解決了50行都不一定能解決的問題,今天分享到這裡,後面見更多thumbnailator的用法分享。

其實很多時候,我們只需要魚,而不是漁,吶,給你魚。

TO BE CONTINUE !
關注公眾號 watermelon_code 獲取第一手的滿足~