前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【Android Gradle 插件】自定义 Gradle 插件优化图片 ① ( Android 中的 WebP 图片格式使用 | WebP 格式转换 | WebP 参考文档 )

【Android Gradle 插件】自定义 Gradle 插件优化图片 ① ( Android 中的 WebP 图片格式使用 | WebP 格式转换 | WebP 参考文档 )

作者头像
韩曙亮
发布2023-03-30 17:21:13
1.2K0
发布2023-03-30 17:21:13
举报

文章目录

Android Plugin DSL Reference 参考文档 :

一、Android 中的 WebP 图片格式使用


Android 安装包优化 专栏中 , 介绍了如何 给 Android APK 安装文件进行瘦身 , 介绍了

  • 移除未使用资源
  • 最小化函数库资源
  • 支持特定的密度资源
  • 开启资源压缩
  • 使用 Tint 着色器
  • 使用 SVG 图片
  • 使用 lib7zr.so 处理压缩文件
  • 使用 WebP 图片替换 PNG 图片

等方法进行 APK 瘦身 ;

之后的系列文章开始介绍如何使用 自定义 Gradle 插件 , 在编译时将资源中的图片都转为 WebP 格式 ;

注意 :

  • 在低于 Android 3.2 版本的系统中 , WebP 格式无法使用 ;
  • Launcher 图标必须使用 PNG 格式的 ;
  • 9patch 图片不能转为 WebP 格式的 ;

使用 WebP 格式的图片 的前提是 API 版本需要大于 14 ;

使用 带透明度通道 的 WebP 格式的图片 的前提是 API 版本需要大于 18 ;

Android Studio 自带 WebP 转换功能 , 右键点击资源文件中的图片 , 弹出的菜单中有 " Convert to WebP … " 选项 ,

会弹出如下对话框 , 进行图片格式转换为 WebP 格式 ;

二、WebP 格式转换


美工交付给我们的一般都是 png 格式的图片 , 这里需要将其转为 WebP 格式的 ;

Google 推出了 WebP 图片格式 , 同时也推出了相应的 WebP 图片格式转换器 libwebp ;

参考 【Android 安装包优化】WebP 应用 ( libwebp 源码下载 | Android.mk 和 Application.mk 构建脚本修改 | libwebp 函数库编译 ) 博客 , 可以到对应的资源页面下载 cwebp 工具 ;

下载 cwebp 工具 , 下载地址 https://download.csdn.net/download/han1202012/17498155 ;

下载 libwebp-0.6.1-windows-x86-no-wic.zip 压缩包 , 解压后内容如下 :

进入 bin 目录 , 该目录下是工具的可执行文件 , 其中的 cwebp.exe 就是转换工具 ;

在命令行中执行 cwebp.exe 命令 ,

提示如下内容 :

代码语言:javascript
复制
D:\001_Develop\044_CWebP\libwebp-0.6.1-windows-x86-no-wic\bin>cwebp.exe
Usage:

   cwebp [options] -q quality input.png -o output.webp

where quality is between 0 (poor) to 100 (very good).
Typical value is around 80.

Try -longhelp for an exhaustive list of advanced options.

-q 参数用于设置图片的压缩质量 , 一般设置 75 ;

执行

代码语言:javascript
复制
cwebp.exe -q 75 input.png -o output.webp

命令 , 可以将图片转为 webp 格式的 ;

命令行输出 :

代码语言:javascript
复制
D:\001_Develop\044_CWebP\libwebp-0.6.1-windows-x86-no-wic\bin>cwebp.exe -q 75 input.png -o output.webp
Saving file 'output.webp'
File:      input.png
Dimension: 96 x 96 (with alpha)
Output:    1324 bytes Y-U-V-All-PSNR 40.80 40.83 36.92   39.87 dB
block count:  intra4: 33
              intra16: 3  (-> 8.33%)
              skipped block: 0 (0.00%)
bytes used:  header:             44  (3.3%)
             mode-partition:    140  (10.6%)
             transparency:      304 (99.0 dB)
 Residuals bytes  |segment 1|segment 2|segment 3|segment 4|  total
    macroblocks:  |      25%|      41%|      16%|      16%|      36
      quantizer:  |      33 |      28 |      21 |      15 |
   filter level:  |      10 |       7 |       4 |       2 |
Lossless-alpha compressed size: 303 bytes
  * Header size: 43 bytes, image data size: 260
  * Precision Bits: histogram=5 transform=5 cache=0
  * Palette size:   83

对比两张图片 , 原图 input.png 大小为 5KB , 转换完成后的图片为 output.webp 大小为 2KB ;

三、WebP 参考文档


WebP 参考文档 :

Android NDK 编译构建脚本参考文档 :

博客资源 :

博客源码 :

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2022-10-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文章目录
  • 一、Android 中的 WebP 图片格式使用
  • 二、WebP 格式转换
  • 三、WebP 参考文档
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档