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 ...
随机推荐
- python入门之进程与线程
什么是进程.线程 进程:一个整体的形式暴露给操作系统管理,里面包含对各种资源的调用,内存的管理,网络接口的调用等,对各种资源管理的基本单位. 线程:操作系统最小的调度单位, 是一串指令的集合,进程中的 ...
- Python 添加模块
一.方法1: 单文件模块直接把文件拷贝到 $python_dir/Lib 二.方法2: 多文件模块,带setup.py 下载模块包,进行解压,进入模块文件夹,执行:python setup.py in ...
- (转)linux正则表达式详解
linux正则表达式详解 http://blog.csdn.net/wuliowen/article/details/64131815 1:什么是正则表达式: 简单的说,正则表达式就是处理字符串的方法 ...
- (转)Word快捷键大全 Word2013/2010/2007/2003常用快捷键大全
Word对于我们办公来说,是不可缺少的办公软件,因为没有它我们可能无法进行许多任务.所以现在的文员和办公室工作的人,最基础的就是会熟悉的使用Office办公软件.在此,为提高大家Word使用水平,Wo ...
- Kotlin容器
1. 容器 可变/不可变 List<out T> 只读list; MutableList<T>; Set<out T>/MutableSet<T> Ma ...
- <llinux下kvm虚拟化>
原理就是本来可能要10台物理机完成的事现在只要5台,分别在每台物理机上虚拟一台,这5太虚拟机共享一个stronge,比如有一台物理机down掉后或是要做维护,我们可以把它上面的虚拟机牵走,从而减少损失 ...
- UICollectionView笔记2
WWDC 2012 Session笔记——219 Advanced Collection Views and Building Custom Layouts 这是博主的WWDC2012笔记系列中的一篇 ...
- 【Java】Maven 常用命令
Maven 常用命令 mvn compile 编译,生成target文件夹,里边有classes文件夹,存放.class文件 mvn test 执行测试 mvn package 打包,在targert ...
- window.returnValue使用方法
returnValue是javascript中html的window对象的属性,目的是返回窗口值,当用window.showModalDialog函数打开一个IE的模式窗口(模式窗口知道吧,就是打开后 ...
- spring 中使用quartz实现定时任务
一般开发系统,使用定时任务非常常见.当然也可以用Java实现.比如定时器.大致如下: 1: public static void main(String[] args) { 2: Timer time ...