WebP探索
- 浏览器:JS能力检测,对支持 WebP 的用户输出 WebP 图片;使用WebpJS检测浏览器或webview是否支持,此插件我自己测试只有win下chrome能用,其他均存在问题
- 手淘方案:目前手淘Android和iOS App中是支持的WebP的,采用解析库。iOS中webview本身是不支持WebP格式的,手淘中的实现是交给图片库来完成这部分工作(手淘是获取WebP格式文件然后转码成jpg给webview,我们现在是先进性判断再加载对应的图片)
- 案例实战:
;(function(doc){
//判断是否支持WebP,测试了iPhone5s和坚果手机下的不同浏览器该判断方法可行
function checkWebp(){
try{
return (doc.createElement('canvas').toDataURL('image/webp').indexOf('data:image/webp') == 0);
//返回的是一串Base64编码的URL
//data:image/webp;base64,UklGRrgAAABXRUJQVlA4WAoAAAAQAAAAKwEAlQAAQUxQSBIAAAAB…kPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99qwAAP7/1gAAAAAAAAAA
}
catch(err){
return false;
}
}
//获取class不依赖zepto
function getByClass(parent,cls){
if(parent.getElementsByClassName){
return parent.getElementsByClassName(cls);
}
else{
var res=[];
var reg=new RegExp(" "+cls+" ","i");
var ele=parent.getElementsByTagName("*");
for(var i=0;i<ele.length;i++){
if(reg.test(" "+ele[i].className+" ")){
res.push(ele[i]);
}
}
return res;
}
}
//改变带webp class的图片路径
function ChangeImg(sClass){
this.aImg = getByClass(doc,"webp");
this.oBar = checkWebp();
}
ChangeImg.prototype.test = function(){
//默认给html根节点加.normal
doc.documentElement.className = "normal";
if(this.oBar){
//支持webp则给html根节点加上support类名
doc.documentElement.className = "support";
for(var i = 0;i < this.aImg.length;i ++){
if(this.aImg[i].getAttribute("data-src")){
var dataSrc = this.aImg[i].getAttribute("data-src");
//获取images目录下图片的名字
var imgSrc = dataSrc.split("?")[0].split(".")[0].substring(6);
//images换成webp
var imgStr = "webp" + imgSrc + ".webp";
this.aImg[i].setAttribute("data-src",imgStr);
}
}
}
};
//通过webp class来判断是否需要webp格式图片
new ChangeImg("webp").test(); })(document);
- 改进点:fis3下暂未发现有实时监听转换webp格式图片的插件,gulp有,目前可以通过智图网页版或客户端进行批量转换,一步到位;iOS下App不支持WebP,需要iOS同学进行相关的处理;其他一些问题等待大家去探索发现...
WebP探索的更多相关文章
- webp技术探索
不管是 PC 还是移动端,图片一直是流量大头,以苹果公司 Retina 产品为代表的高 PPI 屏对图片的质量提出了更高的要求,如何保证在图片的精细度不降低的前提下缩小图片体积,成为了一个有价值且值得 ...
- webp图片详解
WebP(发音 weppy),是一种支持有损压缩和无损压缩的图片文件格式,派生自图像编码格式 VP8.根据 Google 的测试,无损压缩后的 WebP 比 PNG 文件少了 45% 的文件大小,即使 ...
- Google最新的图片格式WEBP全面解析
前言 不管是 PC 还是移动端,图片一直是流量大头,以苹果公司 Retina 产品为代表的高 PPI 屏对图片的质量提出了更高的要求,如何保证在图片的精细度不降低的前提下缩小图片体积,成为了一个有价值 ...
- 关于webp图片格式初探
前言 不管是 PC 还是移动端,图片一直是流量大头,以苹果公司 Retina 产品为代表的高 PPI 屏对图片的质量提出了更高的要求,如何保证在图片的精细度不降低的前提下缩小图片体积,成为了一个有价值 ...
- FPGA加速:面向数据中心和云服务的探索和实践
欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由columneditor 发表于云+社区专栏 作者介绍:章恒--腾讯云FPGA专家,目前在腾讯架构平台部负责FPGA云的研发工作,探索 ...
- webp图片实践之路
最近,我们在项目中实践了webp图片,并且抽离出了工具模块,整合到了项目的基础模板中.传闻IOS10也将要支持webp,那么使用webp带来的性能提升将更加明显.估计在不久的将来,webp会成为标配. ...
- 【探索】机器指令翻译成 JavaScript
前言 前些时候研究脚本混淆时,打算先学一些「程序流程」相关的概念.为了不因太枯燥而放弃,决定想一个有趣的案例,可以边探索边学. 于是想了一个话题:尝试将机器指令 1:1 翻译 成 JavaScript ...
- 【探索】利用 canvas 实现数据压缩
前言 HTTP 支持 GZip 压缩,可节省不少传输资源.但遗憾的是,只有下载才有,上传并不支持.如果上传也能压缩,那就完美了.特别适合大量文本提交的场合,比如博客园,就是很好的例子. 虽然标准不支持 ...
- 探索C#之6.0语法糖剖析
阅读目录: 自动属性默认初始化 自动只读属性默认初始化 表达式为主体的函数 表达式为主体的属性(赋值) 静态类导入 Null条件运算符 字符串格式化 索引初始化 异常过滤器when catch和fin ...
随机推荐
- java位移操作
http://www.cnblogs.com/kanego/archive/2011/03/21/1990617.html java位移符号解释和举例
- Oracle Sequence用plsql修改
在plsql中,打开Objects窗口 找Sequences文件夹>你需要修改的Sequence 选中你需要修改的sequence,右键edit(编辑) OK!
- 【ORACLE】ORA-27102: out of memory报错的处理
************************************************************************ ****原文:blog.csdn.net/clark_ ...
- 【Android】getActionBar()为null的解决方法总结
前言 在使用 ActionBar的时候,有时候会爆出空指针异常,这是由于应用没有获取到 ActionBar 导致的,而导致应用没有获取到 ActionBar 的原因比較多.所以我们以下就来总结一下 A ...
- 介绍JSON
0x00 介绍JSON 介绍JSON :http://www.json.org/json-zh.html Introducing JSON :http://www.json.org/
- XTUOJ 1176 I Love Military Chess(模拟)
I Love Military Chess Accepted : 45 Submit : 141 Time Limit : 1000 MS Memory Limit : 65536 KB ...
- leetCode 84.Largest Rectangle in Histogram (最大矩形直方图) 解题思路和方法
Given n non-negative integers representing the histogram's bar height where the width of each bar is ...
- 【问】Windows下C++局部变量在内存中的分布问题
原本是为了看看C++对象模型中子对象赋值给一个父对象和父类型指针指向的域时,到底会不会切割,就打开codebloks写了下面的代码,编译器选的是GNU. #define DEBUG(X) std::c ...
- PHP和mysql的长连接
关于 PHP MySQL 长连接.连接池的一些探索 PHP连接MySQL的方式,用的多的是mysql扩展.mysqli扩展.pdo_mysql扩展,是官方提供的.php的运行机制是页面执行完会释放所有 ...
- access变转换为mysql表工具
1.一个是国外软件,名字叫Access2MySQL,下载地址:http://www.pc6.com/softview/SoftView_7187.html 2.第二款软件是月光博客写的一个小软件:DB ...