一款Android端自动化图片压缩的gradle插件,一键扫描项目中的资源目录并进行批量图片压缩,提供3种压缩方式,支持有损及无损压缩.同时会记录已压缩的文件,适合个人及团队协同使用.
一款Android端自动化图片压缩插件,一键
扫描项目中的资源目录并进行批量图片压缩,提供3种压缩方式,支持有损及无损压缩.同时会记录已压缩的文件,适合个人及团队协同使用.
第一步:在Project
的build.gradle文件中:
buildscript {
repositories {
mavenCentral()
}
dependencies {
...
classpath 'io.github.duking666:ImgCompressPlugin:1.2.1'
}
}
...
...
//图片压缩插件配置
apply plugin: 'img-compressor'
imgCompressOpt{
way="pngquant"
test = false
whiteFiles=["text_pic1.png","test_pic2.jpg"]
minSize=5
tinyKeys=["your key"]
}
第二步:引入后点击sync now
,gradle配置完毕后会显示下图imgCompressTask
,双击即可执行,等待压缩结果即可
way
:设置压缩的方式,支持3种常见的压缩,"tinypng","pngquant","zopflip" 3选1,压缩方式选择及压缩效果见下图test
:设置测试模式是否开启,false表示压缩后图片直接覆盖原图,true表示会把原图及压缩图输出到测试目录(Project/ImageCompressTest)whiteFiles
:选填,白名单文件数组,不进行压缩minSize
:单位为KB,设置原图大于某个数值才触发压缩,0表示全部都压缩tinyKeys
:选填,仅在way="tinypng"情况下才需要,tinyKeys申请教程入口
原图 | tinypng | pngquant | zopflip |
---|---|---|---|
压缩类型 | 有损 | 有损 | 无损 |
1.3M | 445KB | 542KB | 903KB |
感觉
像压缩过,但实际并没有(Project/ImageCompressTest)
,压缩后的图片命名为xxxx(test).png
引入本插件,配置测试模式test=false,初次执行imgCompressTask
后,查看log,会打印类似日志:
执行task后会在project目录下生成image-compressed-info.json文件,记录了已压缩的图片信息
通过Android studio自带的版本控制对比压缩前后图片是否失真,将失真图片(一般很少)加入白名单中,同时revert恢复原图
将image-compressed-info.json文件加入到版本控制,提交修改后的图片及json文件
在后续的版本开发中,团队中的任何人在开发过程中加入任何图片,或者等版本提测后,执行一次task即可压缩新版本引入的图片,旧版本的图片保持不变,也不会出现团队成员重复压缩的情况
在macOS、windows10上测试通过