檔案系統【圖片處理】(基於thumbnailator)典藏版-壹
阿新 • • 發佈:2019-09-04
很多系統開發中都會碰到檔案相關的處理,最近順手開發一個小型檔案系統的過程中碰到圖片縮圖的需求,需要在顯示的時候提供縮圖,下載的時候提供原圖,大家直接想到的可能是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 獲取第一手的滿足~