WebP是什么
https://zh.wikipedia.org/wiki/WebP
使用不够广泛
-
使用AS转换
image.png - 使用工具转换
下载地址:http://isparta.github.io/ - 使用命令的方式进行转换
cwebp -q quality in.png -o out.webp -q 质量,0-100之间。google给出75是最佳质量
libwebp下载地址
https://storage.googleapis.com/downloads.webmproject.org/releases/webp/index.html
https://pan.baidu.com/s/1DSNlyvT3kCNoEbp8A5aCrA -
编码速度
时间与空间的妥协?
时间:
image.png
空间:
image.png image.png - 兼容现状
https://developer.android.com/guide/topics/media/media-formats.html
image.png
image.png4.2.1+对于webp的decode和encode是完全支持的,包括半透明图片
4.0+到4.2.1,只支持完全不透明的decode、encode的webp图
4.0 以下,应该是默认不支持webp了
那么针对4.0以下的机型我们要使用webp咋办呢,没事,google提供了解决方案.
既然你不帮我这样做,那我自己写一套编码解码不就行了吗?
https://developers.google.com/speed/webp/download
我们把文件下载下来之后,把它编译成so包,放入项目中即可使用相关接口
步骤:
- 解压libwebp,找到Android.mk,Android.mk中增加 ENABLE_SHARED := 1
image.png - 添加 swig/libwebp_java_wrap.c
image.png - 创建Application.mk 。APP_ABI := armeabi-v7a x86 APP_PLATFORM = android-14
image.png -
目录的名字改为jni,并在该目录下执行ndk-build,获得jni/swig/libwebp.jar以及 libs/ABI/libwebp..so
image.png
下一章节实现自己解码和编码webp,解决上述兼容问题
网友评论