webp基础介绍

WebP是什么

https://zh.wikipedia.org/wiki/WebP

image.png

使用不够广泛

  • 使用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

4.2.1+对于webp的decode和encode是完全支持的,包括半透明图片
4.0+到4.2.1,只支持完全不透明的decode、encode的webp图
4.0 以下,应该是默认不支持webp了
那么针对4.0以下的机型我们要使用webp咋办呢,没事,google提供了解决方案.

image.png

既然你不帮我这样做,那我自己写一套编码解码不就行了吗?
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,解决上述兼容问题

你可能感兴趣的:(webp基础介绍)