美文网首页
WebP初探

WebP初探

作者: 梦sora | 来源:发表于2017-01-13 13:35 被阅读186次

WebP
[发音 weppy]
一种新的图片格式,提供更好的无损和有损压缩图片
无损图片比PNG小26%,有损图片在相同品质下比JPEG小25-34%
透明图片也比同等的PNG和JPEG图片小

如何实现

webp有损压缩预编译编码和VP8视频编码器关键帧压缩一样,编译一块的值,相邻块只编译与这块不同的部分
有损压缩则用原图片重建像素

支持

支持Chrome,Opera浏览器等
编码解码库libwebp,命令行编码解码cwebp dwebp

如何转换

libwebp
源码地址

  1. png和jpg转webp
    cwebp [options] input_file -o output_file.webp
    cwebp xxx.png -o xxx.webp
    cwebp xxx.jpg -o xxx.webp
    -H 查看帮助
  2. webp转png和jpg
    dwebp xxx.webp -o xxx.png
    dwebp xxx.webp -o xxx.png
  3. gif 转webp
    ./gif2webp xxx.gif -o xxx.webp
  4. 预览webp
    vwebp [options] input_file.webp

Android项目中使用libwebp

  1. 对与服务端交互过程中使用webp图片
    流文件 BitmapFactory.decodeStream(is);
  2. 应用中的资源文件
    bitmap目录中

有没有兼容性的问题?


https://developer.android.com/guide/topics/media/media-formats.html

  • 4.2.1+ 对于webp的decode、encode是完全支持的(包含半透明的webp图)
  • 4.0+ 到 4.2.1 ,只支持完全不透明的decode、encode的webp图
  • 4.0 以下,应该是默认不支持webp了

寻求兼容库
webp-android
也可通过官方源码自己实现
下载下来/src/main/jni目录,执行ndk-build
src/main/libs目录下copy出你需要的so
然后将其WebDecoder的辅助类copy到项目中即可,注意保持原有包名。

  1. 流文件
    if (Build.VERSION.SDK_INT > Build.VERSION_CODES.JELLY_BEAN) { bitmap = WebPDecoder.getInstance().decodeWebP(streamToBytes(is)); } else { bitmap = BitmapFactory.decodeStream(is); }
  2. 资源文件
    自定义一个布局,同上解析
    <me.everything.webp.WebpImageView android:layout_width="wrap_content" android:layout_height="wrap_content" webp:webp_src="@drawable/test"/>

但是webp很多都是已经存在的项目,使用自定义类还要加属性,万一发现坑,又要还回去也麻烦,需要一种尽可能改动小的方案,就是不动原本的布局文件,动态修改ImageView使其支持Webp
见代码

资源文件更换并不彻底,还存在部分png的图,如何区分webp和非webp的图片资源呢?
见代码

相关文章

  • WebP初探

    什么是WebP 具不完全统计,互联网流量中60%都产生于图片,图片永远是流量的大头,如何保证在图片的精细度不降低的...

  • WebP初探

    WebP[发音 weppy]一种新的图片格式,提供更好的无损和有损压缩图片无损图片比PNG小26%,有损图片在相同...

  • 关于webp

    关于webp的介绍及测试 检测浏览器是否支持WebP google webp

  • Android 如何实现webp转png?看这篇就够了

    Webp是什么, 请移步 What‘s Webp? 由于webp与生俱有优点,webp如今使用已经很广泛了,包括客...

  • iOS 支持webp格式图片

    在iOS项目中使用WebP SDWebImage中支持WebP格式的,可以完成UIImage -> Webp和We...

  • 视频转 webp 动图

    视频转 webp 动图 准备工作 编译支持 webp 的 ffmpeg 库 下载 webp 源码进行编译./con...

  • WebP图片的优势

    文章摘自本家网站 捷搜索 之 什么是WebP图片?什么是 WebP 格式图片?WebP 是由谷歌(google...

  • Android创建WebP图像

    Android创建WebP图像 创建WebP图像 WebP是Google提供的有损压缩(如JPEG)以及透明度(如...

  • iOS webp格式图片支持

    webp格式图片 webp格式图片是google推出的,相比jpg png有着巨大的优势,同样质量的图片webp格...

  • iOS-webp

    SDWebImage 可以实现加载webp 需要 pod ’SDWebImage/WebP’ 关于SDWebIma...

网友评论

      本文标题:WebP初探

      本文链接:https://www.haomeiwen.com/subject/dblivttx.html