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

極客熊貓發表於2018-06-28

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

一、為什麼要擼一個圖片壓縮外掛?

我們在專案開發過程中常會使用圖片,一般開發者都不會直接把設計切的圖片放入到專案中,而是會去壓縮一下,那麼一般會去TinyPng網頁端壓縮一遍,你一般會先把要壓縮的圖片拖進去,然後又一張張把圖片點選下載下來,是不是感覺特別的浪費時間,是不是需要把浪費的時間省下來,然後就愉快地早點下班啦。如果你還沒有使用過TinyPng,那麼這個外掛也許適合你。

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

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

然後這段時間正研究外掛,所以決定試試,其實很簡單的。因為TinyPng提供develop api,可以方便實現圖片壓縮。這次外掛也就是利用了它的API開發的。

二、外掛的基本描述

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

三、外掛支援的功能

  • 1、支援整個目錄中的圖片批量壓縮,只需要指定圖片源目錄和壓縮的輸出目錄即可
  • 2、支援單張或者選定多張圖片檔案進行壓縮
  • 3、支援png,jpg格式圖片
  • 4、支援輸入目錄和輸出目錄二次選擇功能,減少繁瑣指定相同的目錄
  • 5、支援指定輸入檔案的字首,也即是批量檔案新增字首名,以及字首名二次選擇功能
  • 6、圖片壓縮過程中,仍然繼續coding, 工作並行執行

四、外掛開發使用到的技術點

  • 1、Intellij Idea 外掛開發基礎知識
  • 2、外掛開發中執行一個後臺執行緒任務Task.Backgroundable的使用
  • 3、Intellij Idea open api 的使用
  • 4、Kotlin 開發基礎知識
  • 5、Kotlin中擴充套件函式的封裝
  • 6、Kotlin中Lambda表示式的使用
  • 7、Kotlin中函式式API的使用
  • 8、Kotlin中IO操作API的使用
  • 9、Java中Swing UI框架的基本使用
  • 10、TinyPng API基本使用

五、外掛的使用步驟

  • 1、首先,按照Plugin通用安裝方式,安裝好對應的外掛,可以直接在jetbrains倉庫中搜尋ImageSlimming,安裝重啟即可。 重啟後發現有如圖外掛,就說明安裝成功。
用Kotlin擼一個圖片壓縮外掛ImageSlimming-導學篇(一)
  • 2、然後點選外掛,第一次需要你填入TinyPng APIKEY,由於外掛圖片壓縮主要藉助於TinyPng Api, 所以需要使用者去TinyPng官網申請 tinypng.com/developers
用Kotlin擼一個圖片壓縮外掛ImageSlimming-導學篇(一)
  • 3、輸入申請到ApiKey後,外掛會自動驗證KEY的合法性,檢測通過後會彈出壓縮圖片介面
用Kotlin擼一個圖片壓縮外掛ImageSlimming-導學篇(一)
  • 4、選擇源目錄也就是原圖片目錄,輸出目錄也就是壓縮後圖片存放目錄,當然也可以指定特定某張或某些圖片檔案作為輸入源,
用Kotlin擼一個圖片壓縮外掛ImageSlimming-導學篇(一)
  • 5、是否指定輸出檔案字首名,該功能主要適用於在Android中多模組開發的時候,每個模組圖片資源名不能重複,所以每個模組圖片字首不一樣,這裡可以指定輸出檔案字首。
用Kotlin擼一個圖片壓縮外掛ImageSlimming-導學篇(一)
  • 6、點選OK就開始壓縮了,此時壓縮過程你可以繼續你的coding,最後壓縮完畢會以對話方塊提示。
用Kotlin擼一個圖片壓縮外掛ImageSlimming-導學篇(一)
  • 7、壓縮結果
用Kotlin擼一個圖片壓縮外掛ImageSlimming-導學篇(一)
  • 8、為了減少指定輸入輸出目錄次數以及檔案字首的次數,會把每次使用者使用過的目錄給快取起來,以及下次直接選擇使用,也就是前面說的二次選擇功能。
用Kotlin擼一個圖片壓縮外掛ImageSlimming-導學篇(一)

六、外掛原始碼和外掛包下載

由於外掛是這兩天才開發,ImageSlimming外掛目前已經發布到jetbrains倉庫中稽核了,相信過幾天就可以在AndroidStudio或其他jetbrains全家桶中plugin中搜尋到它了。所以這裡先給出外掛原始碼地址和外掛包下載地址。

外掛原始碼地址

外掛包下載

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

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

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

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

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

歡迎關注Kotlin開發者聯盟,這裡有最新Kotlin技術文章,每週會不定期翻譯一篇Kotlin國外技術文章。如果你也喜歡Kotlin,歡迎加入我們~~~

相關文章