在《浅谈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...