webp格式图片转化为常见的png格式图片

  1. 问题背景
    在抓取百度首页和今日头条相关的创意广告时,发现有很多部分都是webp格式的图片,在调用图片去重算法时,报错退出,经排查发现库中调用的php api 函数‘getimagesize ( string $filename )',由于php为5.6版本,比较低,不能处理webp格式,只能处理常见的png,jpg, gif几种格式的图片。

  2. webp格式图片介绍
    WebP(发音 weppy,项目主页),是一种支持有损压缩和无损压缩的图片文件格式,派生自图像编码格式 VP8。根据 Google 的测试,无损压缩后的 WebP 比 PNG 文件少了 45% 的文件大小,即使这些 PNG 文件经过其他压缩工具压缩之后,WebP 还是可以减少 28% 的文件大小。
    参考网址:WebP 探寻之路  探究WebP一些事儿
    webp格式图片转化为常见的png格式图片_第1张图片

  3. 解决方案调研
    (1)升级php5.6 到php7,使用getimagesize和imagecreatefromwebp 相关函数处理,但是考虑升级生产环境,对其他项目影响较大,不建议采用;
    (2)python图片处理库,引入其他语言进行处理,代价稍微有点大,若是没有好的方法,可以采用;
      (3) 采用google专门开发的libwebp项目,libwebp项目指南, 这个项目提高dwebp和cwebp两个命令行工具,使用其他非常方便,安装包很小,libwebp包下载地址,以及libwebp githup主页。【建议采用此种方案】

  4. libwebp centos6.5 安装
    按照libwebp包下载地址下载libwebp-0.6.0.tar.gz 或者其他版本的包,由于libwebp库需要依赖glibc的libc.so.6库,需要2.14版本以上,由于升级glibc库代价比较高,可能引入未知的因素,会影响系统的其他线上项目,所以建议编译安装,步骤如下:
    (1)./autogen.sh
    (2)./configure --prefix=/path/to/libwebp
    (3)make && make install
    最后为了方便使用,在当前用户~/.bashrc 配置下export PATH=/path/to/libwebp/bin:${PATH},这样就可以直接引用dwebp和cwebp命令行工具了

  5. cwebp 和dwebp 命令行工具的简单使用:
    (1)Using cwebp to Convert Images to the WebP Format
             cwebp 1.png -o 1.webp
      (2) Using dwebp to Convert Images from the WebP Format
             dwebp 1.webp -o 2.png
     webp 格式图片可以使用chrome浏览器或者xee工具查看,这样就可以验证效果了

    如果你觉得文章对你有帮助,请关注我的微信订阅号:
    webp格式图片转化为常见的png格式图片_第2张图片

你可能感兴趣的:(图像视频)