分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 技术分享

centos下 将(jgp、png)图片转换成webp格式

发布时间:2023-09-06 01:10责任编辑:林大明关键词:png

    由于项目要求需要将jpg、png类型的图片  转换成webp格式,最开始使用了php gd类库里 imagewebp 方法实现,结果发现转换成的webp格式文件会偶尔出现空白内容的情况。像创建了一个透明图层的图片,但是尺寸和内存确跟转换成功的文件一般无二。

初想,可以找个办法判断一下图片是否无效的,网上找各种办法,结果无果。虽然失败了但是还是上一下代码,期待大神能协助完善方法。

function imgToWebp($file=‘‘){ ???????if(is_file($file)){ ???????$img = getimagesize($file); ???????$type = $img[‘mime‘]; ???????if($type == ‘image/jpeg‘){ ???????????$file_source = imagecreatefromjpeg($file); ???????} ???????elseif($type == ‘image/png‘){ ???????????$file_source = imagecreatefrompng($file); ???????} ???????else{ ???????????return false; ???????} ???????$i = strripos($file,‘.‘); ???????$newFileName = substr($file,0,$i+1).‘webp‘; ???????$ret = imagewebp($file_source,$newFileName,‘80‘); ???????return $ret; ???}}

使用前提条件为,php版本>=5.5  以上,并且开启gd类库。

上面这个方法的成功率不怎么高,欢迎指错。由于成功率不高,我果断换了实现方式。

既然php无法帮助我完成任务,自然要让linux上的第三方类库帮我实现格式转换,所以找到了 libwebp库。

1.首先安装类型支持

#ubuntuapt-get install webp #centosyum -y install libwebp-devel libwebp-tools

安装完毕你的系统中将获得三个工具(另外 vwebp、webpmux   待学习中)

1. cwebp   如需帮助请 cwebp --help,贴一条示例转换命令:

cwebp -q 50 ~/***.jpg -o ***.webp

2. dwebp  将webp文件转换成jgp、png,同上帮助:dwebp --help

dwebp ~/***.webp -o ~/***.png

3. gif2webp gif图片资源转成webp

cwebp -q 50 ~/***.gif -o ***.webp

有了系统的类库支持,程序直接抛命令给linux处理就可以了,我这用的是php,记得要是线上模式你的php环境可能已经把exec、system等函数禁用了,查看你的php.ini,disable_funcitons配置项。提醒:禁用函数开启将增加服务器的安全风险,所以还请程序中做好参数的校验工作,确保你的过滤后命令不会造成不必要的损失。

欢迎大牛随时批评及指正!!!

另外需要确定你的服务器上安装了 libpng、libjpeg等支持包。

centos下 将(jgp、png)图片转换成webp格式

原文地址:http://www.cnblogs.com/xiaobing007/p/7511415.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved