- 问题背景
在抓取百度首页和今日头条相关的创意广告时,发现有很多部分都是webp格式的图片,在调用图片去重算法时,报错退出,经排查发现库中调用的php api 函数‘getimagesize ( string $filename )',由于php为5.6版本,比较低,不能处理webp格式,只能处理常见的png,jpg, gif几种格式的图片。
- webp格式图片介绍
WebP(发音 weppy,项目主页),是一种支持有损压缩和无损压缩的图片文件格式,派生自图像编码格式 VP8。根据 Google 的测试,无损压缩后的 WebP 比 PNG 文件少了 45% 的文件大小,即使这些 PNG 文件经过其他压缩工具压缩之后,WebP 还是可以减少 28% 的文件大小。
参考网址:WebP 探寻之路 探究WebP一些事儿
- 解决方案调研
(1)升级php5.6 到php7,使用getimagesize和imagecreatefromwebp 相关函数处理,但是考虑升级生产环境,对其他项目影响较大,不建议采用;
(2)python图片处理库,引入其他语言进行处理,代价稍微有点大,若是没有好的方法,可以采用;
(3) 采用google专门开发的libwebp项目,libwebp项目指南, 这个项目提高dwebp和cwebp两个命令行工具,使用其他非常方便,安装包很小,libwebp包下载地址,以及libwebp githup主页。【建议采用此种方案】
- 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命令行工具了
- 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格式图片
webp格式图片转化为常见的png格式图片问题背景在抓取百度首页和今日头条相关的创意广告时 发现有很多部分都是 webp 格式的图片 在调用图片去重算法时 报错退出 经排查发现库中调用的 phpapi 函数 getimagesize string filename 由于 php 为 5 6 版本 比较低 不能处理 webp 格式 只能处理常见的 png jpg gif 几种格式的图片
NAS 网络存储
上一篇
2025-01-04 21:17
计算机会显示错误的是,电脑提示蓝屏错误WHEA UNCORRECTABLE ERROR的解决方法
下一篇
2025-01-04 21:11
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/bian-cheng-ji-chu/101370.html