用Kotlin擼一個圖片壓縮插件ImageSlimming-導學篇(一)

簡述: 好久沒有發佈Kotlin的實戰相關的內容,這段時間在折騰Intellij IDEA的插件開發,折騰出了幾個小插件,由於最近公司業務分離,原來堆在基礎業務那邊模塊,都以模塊的形式抽離出來,獨立倉庫管理。那麼就是各類打包,jenkins打包配置模塊特別麻煩,因此想着是否能夠開發一個AndroidStudio插件,我能夠寫代碼和構建發佈包同時進行,想一想都美滋滋,因此纔去研究了下插件的開發。摸清插件開發套路後,其實也以爲挺簡單,而後發現不少地方均可以用插件自動化實現,頓時有種發現新大陸趕腳。此次我要講是如何從零開始,使用Kotlin擼一個AndroidStudio圖片壓縮插件,本系列文章總三篇:《用Kotlin擼一個圖片壓縮插件ImageSlimming-導學篇》、《用Kotlin擼一個圖片壓縮插件ImageSlimming-插件基礎篇》、《用Kotlin擼一個圖片壓縮插件ImageSlimming-實戰篇》git

1、爲何要擼一個圖片壓縮插件?

咱們在項目開發過程當中常會使用圖片,通常開發者都不會直接把設計切的圖片放入到項目中,而是會去壓縮一下,那麼通常會去TinyPng網頁端壓縮一遍,你通常會先把要壓縮的圖片拖進去,而後又一張張把圖片點擊下載下來,是否是感受特別的浪費時間,是否是須要把浪費的時間省下來,而後就愉快地早點下班啦。若是你尚未使用過TinyPng,那麼這個插件也許適合你。github

而後這段時間正研究插件,因此決定試試,其實很簡單的。由於TinyPng提供develop api,能夠方便實現圖片壓縮。此次插件也就是利用了它的API開發的。api

2、插件的基本描述

ImageSlimming是一個基於TinyPng API開發的圖片壓縮的IDEA工具插件,採用的是Kotlin語言開發以及Java Swing框架設計UI界面。可運行在AndroidStudio,Intellij IDEA,WebStorm等JetBrains全家桶系列IDE中。緩存

3、插件支持的功能

  • 一、支持整個目錄中的圖片批量壓縮,只須要指定圖片源目錄和壓縮的輸出目錄便可
  • 二、支持單張或者選定多張圖片文件進行壓縮
  • 三、支持png,jpg格式圖片
  • 四、支持輸入目錄和輸出目錄二次選擇功能,減小繁瑣指定相同的目錄
  • 五、支持指定輸入文件的前綴,也便是批量文件添加前綴名,以及前綴名二次選擇功能
  • 六、圖片壓縮過程當中,仍然繼續coding, 工做並行執行

4、插件開發使用到的技術點

  • 一、Intellij Idea 插件開發基礎知識
  • 二、插件開發中執行一個後臺線程任務Task.Backgroundable的使用
  • 三、Intellij Idea open api 的使用
  • 四、Kotlin 開發基礎知識
  • 五、Kotlin中擴展函數的封裝
  • 六、Kotlin中Lambda表達式的使用
  • 七、Kotlin中函數式API的使用
  • 八、Kotlin中IO操做API的使用
  • 九、Java中Swing UI框架的基本使用
  • 十、TinyPng API基本使用

5、插件的使用步驟

  • 一、首先,按照Plugin通用安裝方式,安裝好對應的插件,能夠直接在jetbrains倉庫中搜索ImageSlimming,安裝重啓便可。 重啓後發現有如圖插件,就說明安裝成功。
  • 二、而後點擊插件,第一次須要你填入TinyPng APIKEY,因爲插件圖片壓縮主要藉助於TinyPng Api, 因此須要使用者去TinyPng官網申請 tinypng.com/developers
  • 三、輸入申請到ApiKey後,插件會自動驗證KEY的合法性,檢測經過後會彈出壓縮圖片界面
  • 四、選擇源目錄也就是原圖片目錄,輸出目錄也就是壓縮後圖片存放目錄,固然也能夠指定特定某張或某些圖片文件做爲輸入源,
  • 五、是否指定輸出文件前綴名,該功能主要適用於在Android中多模塊開發的時候,每一個模塊圖片資源名不能重複,因此每一個模塊圖片前綴不同,這裏能夠指定輸出文件前綴。
  • 六、點擊OK就開始壓縮了,此時壓縮過程你能夠繼續你的coding,最後壓縮完畢會以對話框提示。
  • 七、壓縮結果
  • 八、爲了減小指定輸入輸出目錄次數以及文件前綴的次數,會把每次用戶使用過的目錄給緩存起來,以及下次直接選擇使用,也就是前面說的二次選擇功能。

6、插件源碼和插件包下載

因爲插件是這兩天才開發,ImageSlimming插件目前已經發布到jetbrains倉庫中審覈了,相信過幾天就能夠在AndroidStudio或其餘jetbrains全家桶中plugin中搜索到它了。因此這裏先給出插件源碼地址和插件包下載地址。框架

插件源碼地址函數

插件包下載工具

插播一條消息(有人提需求了)

ImageSlimming圖片壓縮插件開發完成後,立刻就把它推薦給團隊內部人員使用,在週會上就有同事提出了一個需求,就是在AndroidStudio項目中,能夠任意選中res目錄下一張或多張圖片,而後直接右鍵選擇,就能夠實現圖片壓縮。而後思考了一波,這個需求挺好的,內心大概想了下,今晚就去把它實現了。實現效果大概以下:插件

實現這個功能後,把V1.1版本的代碼作了很大的結構上調整,抽離出一些公共的頂層函數和擴展函數,目前這個功能代碼已經更新到GitHub上了,請認準feature-image-slimming-v1.2分支。線程

歡迎關注Kotlin開發者聯盟,這裏有最新Kotlin技術文章,每週會不按期翻譯一篇Kotlin國外技術文章。若是你也喜歡Kotlin,歡迎加入咱們~~~翻譯

相關文章
相關標籤/搜索