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


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

    GitHub项目地址:ImageOptimization

    ImageOptimization

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

    支持的os

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

    引入ImageOptimization

    在Project的build.gradle文件中:

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

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

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

    同步之后会生成如下任务:双击执行任务即可

    任务生成规则

    imageOptimization_module名字_variant名字

    配置项

    在module的build.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无损转为webplossy有损压缩lossless无损压缩
       
    50.05k 15.28k 30.30k 13.64k 42.21k

    jpg图片

    原图有损转为webplossy有损压缩
    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

  • 相关阅读:
    0502-计算图
    0601-利用pytorch的nn工具箱实现LeNet网络
    0501-Variable
    0201-PyTorch0.4.0迁移指南以及代码兼容
    0401-Tensor的基础操作
    0303-利用手写数字问题引入深度神经网络
    0302-利用pytorch解决线性回归问题
    ZT台式机 Tensorflow配置
    java计算日期之间的时间差并转为毫秒
    sklearn cluster KMeans
  • 原文地址:https://www.cnblogs.com/leipDao/p/10439320.html
Copyright © 2020-2023  润新知