nodejs应用转换png,jpg,gif为webp图片格式
2024-08-26 12:36:38
本博客列表缩略图在支持webp
格式的浏览器下,使用的是webp
格式图片,不支持webp
图片下使用的是原图片(如png,gif,jpg等)
webp
使用指南,请参考 https://www.imqianduan.com/browser/webp.html
如何转换webp?
google官方有推出工具cwebp用来转换webp,可以通过命令行的形式使用webp
cwebp
官方文档: https://developers.google.com/speed/webp/download
这里我们使用另一个基于cwebp
封装后的插件 web-converter,使用起来相对比较简单
安装webp-converter及使用
// 安装
npm install webp-converter --save
// 使用
var webp=require('webp-converter');
//pass input image(.jpeg,.pnp .....) path ,output image(give path where to save and image file name with .webp extension)
//pass option(read documentation for options)
//cwebp(input,output,option,result_callback)
webp.cwebp("input.jpg","output.webp","-q 80",function(status,error){
//if conversion successful status will be '100'
//if conversion fails status will be '101'
console.log(status,error);
});
问题
webp-converter
在本地(windows 7)安装测试一点问题没有,传至服务器就报错了
错误:
cwebp: error while loading shared libraries: libaio.so.6: cannot open shared object file: no such file or directory
一直以为是路径问题,后来发现是依赖包的问题,
解决:
安装linux缺失依赖,问题解决
yum install libXext.x86_64
yum install libXrender.x86_64
yum install libXtst.x86_64
浏览器判断是否支持webp
通过http
请求的accept
字段,可以判断浏览器是否支持webp
格式
本博客使用的是eggjs
框架:
// 是否支持webp
const requestAccept = ctx.request.headers.accept;
const isSuportWebP = /image\/webp/gi.test(requestAccept);
eggjs
使用Nunjucks
作为模板,在模板中判断isSuportWebP
是否为true
,是则输出webp
格式的URL,否则输出默认图片格式URL
最新文章
- install scrapy-redis on centos
- 【转载】在IT界取得成功应该知道的10件事
- scrollview 嵌套 折叠效果
- vs2015 现用插件
- Android应用程序消息处理机制
- nginx 负载均衡策略
- 在myeclipse文件中如何创建properties类型的文件,从而连接数据库
- Android的Task和Activity相关
- loadView 与 ViewDidLoad
- IOS学习:常用第三方库(GDataXMLNode:xml解析库)
- 在WPF中自定义你的绘制(三)
- 【CTO辩论】移动创业大军:谁斗争or变更代理
- 使用LFM(Latent factor model)隐语义模型进行Top-N推荐
- 在UE4中使用SVN作为source control工具
- [Java自学第二天]
- PCI9054芯片的型号说明及购买建议
- nodejs核心技术
- Android Environment.getExternalStorageDirectory() 获取的是内部存储还是外部存储? - z
- bzoj千题计划291:bzoj3640: JC的小苹果
- UVa 11491 Erasing and Winning (贪心,单调队列或暴力)