Gradle入门到实战(二) — ImageOptimization安卓图片转换压缩插件

上一篇咱们了解了Gradle的各个方面,本篇介绍一款安卓图片优化转换插件,目前已在项目中使用,可一键批量转换压缩图片,webp转换与png/jpg压缩就是那么简单linux

GitHub项目地址:ImageOptimizationgit

ImageOptimization

安卓图片优化插件:能有效减小apk安装包大小,支持png/jpg转为webp,支持png图片有损无损压缩,支持jpg有损压缩github

支持的os

macOSwindows10上已经测试经过,linux上暂时没测试。web

引入ImageOptimization

在Project的build.gradle文件中:windows

buildscript { repositories { jcenter() } dependencies { ... classpath 'com.wanglei.image-optimization:optimization:1.0' } }

在你想要优化的module的build.gradle文件中引入插件: 如在多个module使用则每一个module都要引入插件app

apply plugin:'com.wanglei.image-optimization'

同步以后会生成以下任务:双击执行任务便可less

任务生成规则

imageOptimization_module名字_variant名字测试

配置项

在module的build.gradle文件中添加配置选项,配置插件优化的策略以及参数:gradle

ImageOptimization{ pluginStrategy = "compress" convertWebpQuality = 80 jpegCompressQuality = 90 appIconName = "ic_launcher" appIconRoundName = "ic_launcher_round" convertWebpType = "lossy" compressPngType = "lossless" pngCompressQuality = 79 }

ImageOptimization支持多项参数配置,灵活度高,可根据项目须要本身配置参数,可配置优先转为webp不能转换的在进行图片的压缩,一样你也能够配置只进行图片的压缩而不转为webp优化

配置项参数说明

参数 是否必须 参数配置 参数说明
pluginStrategy 可配置"webp"或者"compress" 插件运行策略参数:如配置为"webp"则会将图片优先转为webp格式,若是不能转换或者转换失败或转换为图片更大则进行图片的压缩,如配置为"compress"则只进行图片的压缩不会转为webp,此参数如不配置默认为"compress"
convertWebpType 可配置"lossy"或者"lossless" webp转换类型参数:"lossy"转为webp采用有损转换模式,"lossless"转为webp采用无损模式,此参数默认为"lossy"
compressPngType 可配置"lossy"或者"lossless" png图片压缩类型参数:"lossy"为压缩png采用有损压缩模式,"lossless"为压缩png采用无损压缩模式,此参数默认为"lossy"
pngCompressQuality 可配置范围为[0,100] png图片压缩质量参数:默认为80,建议使用默认便可,此参数为compressPngType为"lossy"时起做用,也就是有损压缩才起做用
convertWebpQuality 可配置范围为[0,100] 图片转为webp的质量参数:默认为75,此参数为谷歌建议的参数,建议不要更改,转换webp有损模式下此参数才起做用
jpegCompressQuality 可配置范围为[84,100] jpg图片压缩质量参数:默认为84
appIconRoundName 项目app圆形启动图标的名字,不包括图片扩展名 如圆形启动图标为:icon_round.png,这里配置为icon_round
appIconName 项目app启动图标的名字,不包括图片扩展名 如启动图标为:icon.png,这里配置为icon

图片压缩效果对比

PNG图片

原图 有损转为webp 无损转为webp lossy有损压缩 lossless无损压缩
   
50.05k 15.28k 30.30k 13.64k 42.21k

jpg图片

原图 有损转为webp lossy有损压缩
7.91k 2.82k 5.17k

因为博客园不能上传webp图片,上图webp图片没法正常显示,可到GitHub中查看具体对比

额外说明

插件运行的时候会有相应信息打印出:

 

安卓对webp图片的支持


安卓不一样sdk版本对webp的支持有所不一样,具体以下:

sdk<14:不支持webp格式图片
14<= sdk <18:支持webp格式图片,可是不支持有透明通道的 webp格式图片
sdk >=18:有透明经过的webp图片也支持

此外若是想以无损方式将png/jpg图片转为webp,须要的sdk版本最小为18。

ImageOptimization对以上状况都作了适配,你只需放心使用便可

 

.9.png图片的处理

ImageOptimization插件对.9.png图片不作任何处理,既不转换也不压缩保持原样。

 

更多细节可到github查看:https://github.com/MISAYAWANGLEI/ImageOptimization

相关文章
相关标签/搜索