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

河南省建设工程招投标协会网站石家庄市建设厅官网

河南省建设工程招投标协会网站,石家庄市建设厅官网,网站建设思路及设计方案,怎样创建网站桌面快捷方式视频截图效果预览 利用Canvas进行截图 要用原生js实现视频截图#xff0c;可以利用canvas的绘图功能 ctx.drawImage#xff0c;只需要获取到视频标签#xff0c;就可以通过drawImage把视频当前帧图像绘制在canvas画布上。 const video document.querySelector(video) con…视频截图效果预览 利用Canvas进行截图 要用原生js实现视频截图可以利用canvas的绘图功能 ctx.drawImage只需要获取到视频标签就可以通过drawImage把视频当前帧图像绘制在canvas画布上。 const video document.querySelector(video) const canvas document.createElement(canvas) const w video.videoWidth const h video.videoHeight canvas.width w canvas.height h const ctx canvas.getContext(2d) ctx.drawImage(video, 0, 0, w, h)接下来需要把画布转化为图片canvas提供了两个2D转换为图片的方法canvas.toDataURL()和canvas.toBlob() canvas.toDataURL(mimeType, qualityArgument)方法 toDataURL可以把图片转换成base64格式的图片是一个同步方法使用很简单在上面已经绘制好画布的基础上只需要下面一行代码就可以获取到当前视频帧的截图了 const imageUrl canvas.toDataURL(image/png) console.log(imageUrl)可以看到它最终生成了一个很长字符串的base64图片地址。 canvas.toBlob(callback, mimeType, qualityArgument)方法 这个方法相比上一个方法的优点是它是异步的所以有一个callback回调这个callback回调方法默认的第一个参数就是转换好的blob文件信息本文也想重点介绍这种方法的使用。 先说明一下这个方法的三个参数 参数类型是否必传说明callbackFunction是toBlob()方法执行成功后的回调方法支持一个参数表示当前转换的Blob对象mimeTypeString否表示需要转换的图像的mimeType类型。默认值是image/png还可以是image/jpeg甚至image/webp前提浏览器支持等qualityArgumentNumber否表示转换的图片质量。范围是0到1。由于Canvas的toBlob()方法转PNG是无损的因此此参数默认是没有效的除非指定图片mimeType是image/jpeg或者image/webp此时默认压缩值是0.92 使用写法如下 canvas.toBlob((blob) {console.log(blob) }, image/png, 0.92)可以看到方法执行得到的是当前转换的Blob对象 那么剩下的就是要将此Blob对象进一步转化为可供img显示的图片地址。 将Blob对象转化为图片地址 下面介绍三种方法进行转化 方式一 通过URL.createObjectURL()方法将Blob转化为URL canvas.toBlob((blob) {const imageUrl URL.createObjectURL(blob)console.log(1, imageUrl) }, image/jpeg, 1)如下图所示转化得到的是一个bold流的图片地址。 方式二 通过FileReader将Blob转化为DataURL canvas.toBlob((blob) {const reader new FileReader()reader.readAsDataURL(blob)reader.onload () {const imageUrl reader.resultconsole.log(2, imageUrl)} }, image/webp, 1) 如下图所示转化得到的是一个base64的图片地址。 方式三 通过ajax将Blob上传到服务器 canvas.toBlob((blob) {const formData new FormData()formData.append(file, blob) // 这里的file是接口接收参数的字段名需要根据实际情况改变const xhr new XMLHttpRequest()xhr.onload () {const imageUrl JSON.parse(xhr.responseText).data // 接口回调参数需要根据实际情况处理console.log(3, imageUrl)}xhr.open(POST, /api/upload, true) // /api/upload是上传接口需要根据实际情况改变xhr.send(formData) }, image/webp, 1)由此就会将图片上传到你的文件服务器里最终可以得到一个你自己文件服务器下对应的图片地址。 toBlob()方法的兼容 首先toBlob()方法IE9浏览器不支持因为Blob数据格式IE10才支持。 然后对于IE浏览器toBlob()的兼容性有些奇怪IE10浏览器支持ms私有前缀的toBlob()方法完整方法名称是msToBlob()。而IE11toBlob()方法却不支持。 但是我们可以基于toDataURL()方法进行polyfill性能相对会差一些JavaScript代码如下 if (!HTMLCanvasElement.prototype.toBlob) {Object.defineProperty(HTMLCanvasElement.prototype, toBlob, {value: function (callback, type, quality) {var canvas thissetTimeout(function() {var binStr atob( canvas.toDataURL(type, quality).split(,)[1] )var len binStr.lengthvar arr new Uint8Array(len)for (var i 0; i len; i) {arr[i] binStr.charCodeAt(i)}callback(new Blob([arr], { type: type || image/png }))})}}) }注意事项 使用外部链接播放视频的话需要在视频标签上设置允许跨域的处理添加属性crossOriginanonymous即可 video classNamevideoTag crossOriginanonymous controlssource srchttps://www.w3school.com.cn/example/html5/mov_bbb.mp4 typevideo/mp4 / /video或者在js里处理 const video document.querySelector(.videoTag) video.setAttribute(crossOrigin, anonymous) video.load()否则会报以下错误 完整封装示例 最后给出一个利用toBlob进行视频截图最终获取base64图片地址的封装方法代码示例如下 function getBase64ByVideo(video) {const canvas document.createElement(canvas)const w video.videoWidthconst h video.videoHeightcanvas.width wcanvas.height hreturn new Promise((resolve, reject) { // 由于toBlob方法是异步的所以这里用Promiseconst ctx canvas.getContext(2d)ctx.drawImage(video, 0, 0, w, h)canvas.toBlob((blob) {// 通过FileReader将Blob转化为DataURLconst reader new FileReader()reader.readAsDataURL(blob)reader.onload () {const imageUrl reader.resultresolve(imageUrl)}}, image/webp, 1) // 根据需要可以自行配置这里的两个参数}) }调用方法 const videoTag document.querySelector(.videoTag) const dataUrl await getBase64ByVideo(videoTag)
文章转载自:
http://www.morning.xqltq.cn.gov.cn.xqltq.cn
http://www.morning.jydky.cn.gov.cn.jydky.cn
http://www.morning.tdgwg.cn.gov.cn.tdgwg.cn
http://www.morning.beijingzy.com.cn.gov.cn.beijingzy.com.cn
http://www.morning.zdhxm.com.gov.cn.zdhxm.com
http://www.morning.jxzfg.cn.gov.cn.jxzfg.cn
http://www.morning.rszyf.cn.gov.cn.rszyf.cn
http://www.morning.gswfs.cn.gov.cn.gswfs.cn
http://www.morning.bpmdx.cn.gov.cn.bpmdx.cn
http://www.morning.qxbsq.cn.gov.cn.qxbsq.cn
http://www.morning.pwdmz.cn.gov.cn.pwdmz.cn
http://www.morning.yzygj.cn.gov.cn.yzygj.cn
http://www.morning.mwmtk.cn.gov.cn.mwmtk.cn
http://www.morning.zpqk.cn.gov.cn.zpqk.cn
http://www.morning.pdbgm.cn.gov.cn.pdbgm.cn
http://www.morning.xkmrr.cn.gov.cn.xkmrr.cn
http://www.morning.sqfrg.cn.gov.cn.sqfrg.cn
http://www.morning.drbd.cn.gov.cn.drbd.cn
http://www.morning.wbqk.cn.gov.cn.wbqk.cn
http://www.morning.lnbcg.cn.gov.cn.lnbcg.cn
http://www.morning.pynzj.cn.gov.cn.pynzj.cn
http://www.morning.jxfsm.cn.gov.cn.jxfsm.cn
http://www.morning.dsncg.cn.gov.cn.dsncg.cn
http://www.morning.sryhp.cn.gov.cn.sryhp.cn
http://www.morning.yysqz.cn.gov.cn.yysqz.cn
http://www.morning.zsyqg.cn.gov.cn.zsyqg.cn
http://www.morning.pqfbk.cn.gov.cn.pqfbk.cn
http://www.morning.qwyms.cn.gov.cn.qwyms.cn
http://www.morning.sqqds.cn.gov.cn.sqqds.cn
http://www.morning.cnfjs.cn.gov.cn.cnfjs.cn
http://www.morning.rttkl.cn.gov.cn.rttkl.cn
http://www.morning.wzjhl.cn.gov.cn.wzjhl.cn
http://www.morning.kgxrq.cn.gov.cn.kgxrq.cn
http://www.morning.kqnwy.cn.gov.cn.kqnwy.cn
http://www.morning.qxlgt.cn.gov.cn.qxlgt.cn
http://www.morning.eshixi.com.gov.cn.eshixi.com
http://www.morning.xkjrs.cn.gov.cn.xkjrs.cn
http://www.morning.rkbly.cn.gov.cn.rkbly.cn
http://www.morning.rkqzx.cn.gov.cn.rkqzx.cn
http://www.morning.dxsyp.cn.gov.cn.dxsyp.cn
http://www.morning.ybnps.cn.gov.cn.ybnps.cn
http://www.morning.tyrlk.cn.gov.cn.tyrlk.cn
http://www.morning.prgrh.cn.gov.cn.prgrh.cn
http://www.morning.dfdhx.cn.gov.cn.dfdhx.cn
http://www.morning.trrhj.cn.gov.cn.trrhj.cn
http://www.morning.fgkrh.cn.gov.cn.fgkrh.cn
http://www.morning.nlkjq.cn.gov.cn.nlkjq.cn
http://www.morning.mlycx.cn.gov.cn.mlycx.cn
http://www.morning.bktly.cn.gov.cn.bktly.cn
http://www.morning.dpmkn.cn.gov.cn.dpmkn.cn
http://www.morning.mzhhr.cn.gov.cn.mzhhr.cn
http://www.morning.sdecsd.cn.gov.cn.sdecsd.cn
http://www.morning.xdmsq.cn.gov.cn.xdmsq.cn
http://www.morning.kndt.cn.gov.cn.kndt.cn
http://www.morning.wcft.cn.gov.cn.wcft.cn
http://www.morning.mtmph.cn.gov.cn.mtmph.cn
http://www.morning.nhgkm.cn.gov.cn.nhgkm.cn
http://www.morning.nkqxb.cn.gov.cn.nkqxb.cn
http://www.morning.rdxnt.cn.gov.cn.rdxnt.cn
http://www.morning.ghyfm.cn.gov.cn.ghyfm.cn
http://www.morning.nnrqg.cn.gov.cn.nnrqg.cn
http://www.morning.rfxyk.cn.gov.cn.rfxyk.cn
http://www.morning.mingjiangds.com.gov.cn.mingjiangds.com
http://www.morning.xbckm.cn.gov.cn.xbckm.cn
http://www.morning.mlyq.cn.gov.cn.mlyq.cn
http://www.morning.thwhn.cn.gov.cn.thwhn.cn
http://www.morning.kszkm.cn.gov.cn.kszkm.cn
http://www.morning.mhrzd.cn.gov.cn.mhrzd.cn
http://www.morning.qdlr.cn.gov.cn.qdlr.cn
http://www.morning.ggqcg.cn.gov.cn.ggqcg.cn
http://www.morning.tntbs.cn.gov.cn.tntbs.cn
http://www.morning.jpkhn.cn.gov.cn.jpkhn.cn
http://www.morning.lhptg.cn.gov.cn.lhptg.cn
http://www.morning.gbfuy28.cn.gov.cn.gbfuy28.cn
http://www.morning.tmsxn.cn.gov.cn.tmsxn.cn
http://www.morning.qgghj.cn.gov.cn.qgghj.cn
http://www.morning.bflws.cn.gov.cn.bflws.cn
http://www.morning.krdb.cn.gov.cn.krdb.cn
http://www.morning.zlff.cn.gov.cn.zlff.cn
http://www.morning.fxpyt.cn.gov.cn.fxpyt.cn
http://www.tj-hxxt.cn/news/262817.html

相关文章:

  • 免费企业网站建设条件郑州黑马程序员培训机构官网
  • 公司企业网站建设购物网站有哪些功能
  • 天津网站搜索排名麻涌镇网站建设公司
  • 营销网站制作教程有哪些下载软件的应用
  • 承德市网站开发怎么联系网站管理员
  • 律师个人 网站做优化西安百度网站排名优化
  • 自贡公司做网站宁波网站搭建定制非模板网站建设
  • 找事做网站郑州腾讯网站建设
  • 网站建设 开办费wordpress+内容分发
  • 个人备案网站做app外文网站建站
  • 网站指数查询企业网站四大类型
  • 芜湖注册公司宁波关键词优化排名工具
  • 泰兴网站制作自己做的网站可以开直播
  • 网站是不是用cms做的软文营销是什么
  • 农业公司网站源码多种语言的网站
  • 宿迁做网站优化广告设计免费
  • 哪些做直播卖食品的网站百度关键词推广费用
  • 贵州建设厅网站在建工程查询上海个人建站模板
  • 江津哪里找做网站的七牛云官网登录
  • 网站建设 印花税微信商家小程序收费吗
  • 带数据库的网站一个网站多个域名备案
  • 专做运动品牌的网站动漫建模代做网站百度一下
  • 网站服务公司海外推广怎么做
  • 饿了吗网站做的比较好的地方网站icp备案号怎么查询
  • wordpress仿站视频教程互联网公司排名500强名单
  • 基于h5的企业网站建设东莞大岭山
  • 建设银行陕西省分行网站电子商务网站建设 教案
  • 专业彩票网站开发网站怎么做详情页
  • 宁波网站建设的企业用织梦怎么做网站
  • 漯河网站建设网站建设深圳程序开发