当前位置: 首页 > news >正文

判断浏览器是否支持webp图片

.WebP是谷歌主导的开放免费的网络图像格式,其核心编码来自VP8也就是同时支持WebP图片和WebM视频等。
这种图像格式追求的并不是无损画质,而是在有损画质的情况下尽可能的压缩图像体积但也尽量降低清晰度下降。
谷歌资助和发展该图像格式最主要的目的就是节省网络带宽占用,在基本不影响清晰度的情况下降低流量资费等。
此前谷歌浏览器、火狐浏览器和微软浏览器已经先后支持该格式,然而苹果的Safari 浏览器并不支持该图像格式。

解决方案

HTMLCanvasElement.toDataURL() 方法返回一个包含图片展示的 data URI 。可以使用 type 参数其类型,默认为 PNG 格式。图片的分辨率为96dpi。

  • 如果画布的高度或宽度是0,那么会返回字符串“data:,”。
  • 如果传入的类型非“image/png”,但是返回的值以“data:image/png”开头,那么该传入的类型是不支持的。
  • Chrome支持“image/webp”类型。

toDataURL方法将图片转化为包含dataURI的DOMString,通过 base64 编码前面的图片类型值是image/webp进行判断。
比如在谷歌浏览器使用toDataURL方法转成image/webp:
在这里插入图片描述

在 Safari 浏览器使用toDataURL方法转成image/webp:
在这里插入图片描述

可以发现在不支持 webp 的浏览器进行toDataURL,得到的图片类型并不是 webp,因此我们可以通过这个进行判断。

const isSupportWebp = (function () {try {return document.createElement('canvas').toDataURL('image/webp', 0.5).indexOf('data:image/webp') === 0;} catch(err) {return false;}})();
http://www.lryc.cn/news/67711.html

相关文章:

  • 【Qt编程之Widgets模块】-007:QTextStream类及QDataStream类
  • js对map排序,后端返回有序的LinkedHashMap类型时前端获取后顺序依旧从小到大的解决方法
  • JMX vs JFR:谁才是最强大的JVM监控利器?
  • Laravel Collection 基本使用
  • JUC并发编程19 | 读写锁
  • springboot_maven项目怎么引入mybatis
  • JAVA8的新特性——lambda表达式
  • 算法修炼之练气篇——练气六层
  • 利用GPU并行计算beta-NTI,大幅减少群落构建计算时间
  • Shiro框架漏洞分析与复现
  • (数字图像处理MATLAB+Python)第七章图像锐化-第一、二节:图像锐化概述和微分算子
  • C# | 内存池
  • 程序设计入门——C语言2023年5月10日
  • 【2023华为OD笔试必会25题--C语言版】《03 单入口空闲区域》——递归、数组、DFS
  • Grafana安装、升级与备份(02)
  • 【2023华为OD笔试必会25题--C语言版】《10 相同数字的积木游戏》——数组
  • awk命令编辑
  • Pinia和Vuex的区别
  • 《C++高并发服务器笔记——第四章Linux网络编程》
  • NFS服务器搭建(案例)
  • ubuntu 22.04 安装 Docker Desktop 及docker介绍
  • 微前端中的应用隔离是什么,一般是怎么实现的?
  • 【python pandas】合并文件并剔除重复数据
  • Spellman高压电源X射线发生器维修XRB160PN480X4593
  • msvcr120.dll丢失怎样修复?msvcr120.dll丢失修复的四个方法
  • 马哈鱼SQLFLow数据流生成介绍
  • 使用 MVC 模式,实现简单登录功能 (Kotlin)
  • ASEMI代理LT8471IFE#PBF原装ADI车规级LT8471IFE#PBF
  • 8. 100ASK_V853-PRO开发板支持MPP媒体处理平台
  • CLMP证书:让你在职场中脱颖而出的秘密武器!