如何持续优化项目内的图片

时间:2022-07-26
本文章向大家介绍如何持续优化项目内的图片,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

由于包体积优化是一个持续的过程,但是人为手动调整图片等过于耗时,所以整和了下shell 指令,并提供一次分享,方便调整项目内的图片文件。 方案会是一个IOS/Android都能使用的方案,只要在当前文件夹下执行对应的脚本就可以。

技术选型问题

  1. PNG图片压缩 首先想的的是tinypng,但是由于是一个网站,同时调用对方接口需要收费,所以没有选择。之后调研到PngQuant,github.com/kornelski/p…,这个仓库可以由命令行执行,同时压缩比例大概也是在70%左右,同时配合python的情况下可以对我们的项目做很好的支持效果。具体内容细节可以参考juejin.im/entry/68449…
  2. png图片直接转化webP,和上面的原理机制是一样的,我们调用谷歌官方的cwebp指令,帮我们去对图片进行格式转化,新建同名文件夹存储,然后等使用方确定之后覆盖删除旧的png图片,当前应该只有安卓端会先使用,毕竟适配的较好。
  3. png图片转化jpg,如果一张图片没有Alpha通道的情况下,jpg图片会比png图片小很多,所以我们使用了python原生PIL,去把一张png图片更换成jpg。
  4. 同时提供最简单的测试工具给测试,让他们可以快速完成app的monkey测试。写了个简单的shell

所有的图片压缩逻辑都会判断新老大小是否发生变化 如果压缩之后质量没发生变化则不会更换资源

Cli如何使用

  1. 必要开发环境 Mac 同时安装了homebrew 没有安装的同学 看下这个www.jianshu.com/p/7071c1419…
  2. 首先先将github.com/Leifzhang/T… 仓库clone 到本地。
  3. 然后命令行跳转到对应的文件夹下面,执行下面的命令
chomd 777 install.sh
./install.sh
  1. 然后到你需要操作的文件下面,执行
toolman
  1. 然后在操作界面下选择你需要操作的指令

使用效果

通过反编译了下项目将工程还原 然后对单独项目进行整体压缩测试,然后分别将png压缩以及webp替换的压缩大小分享在下面。

  • 使用pngquant 压缩所有图片之后效果大概是整个项目能压缩6.2m左右
  • 使用webp压缩整个项目