centos下 将(jgp、png)图片转换成webp格式
由于项目要求需要将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.首先安装类型支持
#ubuntu
apt-get install webp #centos
yum -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格式的更多相关文章
- jpg、png格式的图片转换成webp后颜色失真的问题
今天简单的试用了一下 cweb.exe 将 jpg, png 格式的图片转换成 webp 格式. 我今天下载的是当前最新版:1.0.0 cwebp 3.jpg -q 85 -o 3.webp 发现图 ...
- ABBYY如何把图片转换成pdf格式
在制作工作文件的时候,有时候会遇到需要进行文件格式转换的情况,比较常见的文件格式转换就包含了Office与pdf格式之间的转换.但除此之外,图片与pdf格式也是可以进行转换的,那么图片要怎么操作,才能 ...
- data:image/png;base64 上传图像将图片转换成base64格式
大家可能注意到了,网页上有些图片的src或css背景图片的url后面跟了一大串字符,比如: data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJ ...
- 如何将.jpg图片 转换成.eps 格式图片
在使用latex写作论文的时候,需要插入一些图片,但是往往有些图片不是eps格式的.虽然网上有如何插入jpg格式的图片方法,但是经过我实验后发现都不太管用.最后找到一个比较靠谱的方法,使用latx本身 ...
- FFMpeg笔记(一) 使用FFmpeg将任意格式图片转换成任意格式图片
void SrcToDest(char* pSrc, char* pDest,unsigned int nSrcWidth, unsigned int nSrcHeight, AVPixelForma ...
- 如何将JPG格式的图片转换成PNG格式
study from : https://jingyan.baidu.com/article/6079ad0e63a4fc28ff86db37.html
- 将jpg压缩成webp格式的图片
cwebp名称 cwebp -压缩图像文件为的WebP文件概要 cwebp [选项] INPUT_FILE -o output_file.webp描述 cwebp压缩使用的WebP格式的图像.输入格式 ...
- android将drawable下的图片转换成bitmap
将drawable下的图片转换成bitmap 1. Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.xx ...
- Android 将drawable下的图片转换成bitmap、Drawable
将drawable下的图片转换成bitmap . Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.xxx ...
随机推荐
- Collections.copy
List<String> names = Arrays.asList(new String[nameList.size()]); Collections.copy(names, nameL ...
- myeclipse非正常关闭解决方法
http://blog.csdn.net/xb12369/article/details/24960347
- 025 Reverse Nodes in k-Group 每k个一组翻转链表
给出一个链表,一次翻转 k 个指针节点,并返回修改后的链表.k 是一个正整数,并且小于等于链表的长度.如果指针节点的数量不是 k 的整数倍,那么最后剩余的节点应当保持原来的样子.你不应该改变节点的值, ...
- eclipse自动添加版权信息
Preference->Java->Code Style->Code Template->comments->Files->Edit 勾选上Automaticall ...
- UVALive - 6436
题目链接:https://vjudge.net/contest/241341#problem/C Tree Land Kingdom is a prosperous and lively kingdo ...
- JavaScript 获取 Url 上的参数(QueryString)值
获取URL里面传的参数,在Js中不能像后台一样使用Request.QueryString来获取URL里面参数,下面介绍两种方式用来获取参数 方式一:使用split分隔来获取,这种方法考试了地址中包含了 ...
- WSGI学习系列eventlet.wsgi
WSGI是Web Service Gateway Interface的缩写. WSGI标准在PEP(Python Enhancement Proposal)中定义并被许多框架实现,其中包括现广泛使用的 ...
- Spring事务管理的xml方式
一个业务的成功: 调用的service是执行成功的,意味着service中调用的所有的dao是执行成功的. 事务应该在Service层统一控制. 如果手动去实现,则需要对dao进行代理,在方法前后进 ...
- linq 读取xml
xml 文件如下: <?xml version="1.0" encoding="utf-8" ?><nodes> <node> ...
- OC 中 self 与 super 总结
一段代码引发的思考: @implementation Son : Father - (id)init { self = [super init]; if (self) { NSLog(@"% ...