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

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

一、爲什麼要擼一個圖片壓縮插件?

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

然後這段時間正研究插件,所以決定試試,其實很簡單的。因爲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,安裝重啓即可。
    重啓後發現有如圖插件,就說明安裝成功。

  • 2、然後點擊插件,第一次需要你填入TinyPng APIKEY,由於插件圖片壓縮主要藉助於TinyPng Api, 所以需要使用者去TinyPng官網申請 https://tinypng.com/developers

  • 3、輸入申請到ApiKey後,插件會自動驗證KEY的合法性,檢測通過後會彈出壓縮圖片界面

  • 4、選擇源目錄也就是原圖片目錄,輸出目錄也就是壓縮後圖片存放目錄,當然也可以指定特定某張或某些圖片文件作爲輸入源,

  • 5、是否指定輸出文件前綴名,該功能主要適用於在Android中多模塊開發的時候,每個模塊圖片資源名不能重複,所以每個模塊圖片前綴不一樣,這裏可以指定輸出文件前綴。

  • 6、點擊OK就開始壓縮了,此時壓縮過程你可以繼續你的coding,最後壓縮完畢會以對話框提示。

  • 7、壓縮結果

  • 8、爲了減少指定輸入輸出目錄次數以及文件前綴的次數,會把每次用戶使用過的目錄給緩存起來,以及下次直接選擇使用,也就是前面說的二次選擇功能。

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

由於插件是這兩天才開發,ImageSlimming插件目前已經發布到jetbrains倉庫中審覈了,相信過幾天就可以在AndroidStudio或其他jetbrains全家桶中plugin中搜索到它了。所以這裏先給出插件源碼地址和插件包下載地址。

插件源碼地址

插件包下載

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章