在《淺談Flutter的優缺點》文章中,我指出了Flutter存在切圖困難,資源管理困難的缺陷,因此我使用node.js編寫了一個小工具,能夠幫您快速生成低倍率圖片,併爲iOS與安卓生成各自平臺的圖標。
fmaker是一個flutter輔助圖片處理工具,也能夠用來給iOS或Android項目生成圖標node
fmaker
能夠自動識別項目下/assets/fmaker
中的多倍圖,將多倍圖按flutter格式遞歸轉換爲2.0x,3.0x,4.0x等文件夾,再將壓縮後的低倍圖保存到assets中,保證flutter能夠自動識別低倍率的圖片。例如,在文件夾下放置example@3x.png
,會生成三倍圖,兩倍圖和一倍圖。android
爲何要這樣作?
由於高分辨率的圖片被縮小時,會產生沒必要要的銳化效果,偶爾會產生卡頓;小圖被放大時,會變得很模糊,flutter提供一個功能,自動顯示正確分辨率的圖片。
可是使用這個功能困難重重,若是你的設計使用sketch切圖,只能切出image.png
,image@2x.png
,image@3x.png
這種圖,可是flutter須要的圖片目錄格式是image.png
,2.0x/image.png
,3.0x/image.png
,這種格式使用sketch是很難一次導出的(須要每一次都更改導出名稱),很很差用。ios
若是/assets/fmaker
文件夾下有名爲ios_icon.png
和android_icon.png
的文件,那麼fmaker
會自動識別這兩個文件,直接將圖標生成到項目中,不須要額外的複製粘貼。git
注意:iOS的圖標不可含有alpha通道,Android的圖標能夠包含。共同的一點是,圖標必須是正方形,
fmaker
會幫你檢查icon尺寸,並在log中輸出錯誤。
git clone https://github.com/mjl0602/flutter-assets-maker.git cd flutter-assets-maker npm install npm install -g fmaker
若是看到,「沒有對應指令,fmaker已安裝」的log,就已經安裝成功。github
先假定你的項目名叫yourFlutterProject。npm
須要準備icon文件,ios_icon.png
和ios_android.png
,放在yourFlutterProject/assets/fmaker下,其餘的多倍圖也能夠放進去,例如example@3x.png。bash
Tips:若是找不到合規的文件又想試一試,使用fmaker init來使用個人測試圖片。工具
cd yourFlutterProject fmaker init #若是暫時找不到圖,就用個人圖測試 fmaker build
而後安卓與iOS的App圖標都已經被替換,你能夠啓動項目來查看。測試
//TODO
有空就整個例子ui
若是有bug,歡迎提issue,pr更好哦。
倉庫地址: https://github.com/mjl0602/fl...