位置: IT常识 - 正文

dom-to-image(dom-to-image原理)

编辑:rootadmin
dom-to-image 前言

推荐整理分享dom-to-image(dom-to-image原理),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:dom-to-image生成的图片存储在哪里,dom-to-image请求完,再执行下一步,dom-to-image 图片跨域,dom-to-image不清晰,dom-to-image不清晰,dom-to-image滚动区域截图,dom-to-image 图片跨域,dom-to-image 图片跨域,内容如对您有帮助,希望把文章链接给更多的朋友!

之前的文章:vue基于html2canvas和jspdf 生成pdf 、解决jspdf中文乱码问题 简单介绍了html2canvas的基本使用,html2canvas 只能截取可视区域,对于含有滚动条的无法完全截取。后来发现还有一个dom-to-image的库可以支持,并且能够生成svg、png、jpeg 3种格式,当然缺点是不支持safari,并且手机端上兼容性不好。

官方文档 ,不得不说有些库是真恶心,起个差不多的名字,找了半天才找到

安装npm install dom-to-imageimport domtoimage from 'dom-to-image';主要方法和属性

方法:

domtoimage.toPng(…);将节点转化为png格式的图片domtoimage.toJpeg(…);将节点转化为jpg格式的图片domtoimage.toSvg(…);将节点转化为svg格式的图片,生成的图片的格式都是base64格式domtoimage.toBlob(…);将节点转化为二进制格式,这个可以直接将图片下载domtoimage.toPixelData(…);获取原始像素值,以Uint8Array 数组的形式返回,每4个数组元素表示一个像素点,即rgba值。这个方法也是挺实用的,可以用于WebGL中编写着色器颜色。

属性:

filter : 过滤器节点中默写不需要的节点;bgcolor : 图片背景颜色;height, width : 图片宽高;style :传入节点的样式,可以是任何有效的样式;quality : 图片的质量,也就是清晰度;一个介于 0 和 1 之间的数字,表示 JPEG 图像的图像质量(例如 0.92 => 92%)。默认为 1.0 (100%)cacheBust : 将时间戳加入到图片的url中,相当于添加新的图片;imagePlaceholder : 图片生成失败时,在图片上面的提示,相当于img标签的alt;使用png<template> <div> <div style="padding:50px;width:500px;border:1px solid red;" id="test"> <p>我是p标签</p> <h1>我是h1标签</h1> <div>我是div标签</div> <img src="./11.jpg" style="width:200px;" /> </div> <el-button type="primary" @click="createImage">生成图片</el-button> <div style="width:500px;height:200px;margin-top:20px;border:1px solid red;"> <p>生成的图片</p> <img :src="dataUrl" style="width:200px;" /> </div> </div></template><script>import domtoimage from 'dom-to-image'export default { data() { return { dataUrl: '' } }, methods: { createImage() { let node = document.getElementById('test'); let that = this domtoimage.toPng(node) .then(function (dataUrl) { //console.log(dataUrl) that.dataUrl = dataUrl }) .catch(function (error) { console.error('生成失败', error); }); } }}</script>dom-to-image(dom-to-image原理)

效果

其他格式

代码同png,用对应的方法即可

属性

filter

createImage() { let node = document.getElementById('test'); let that = this domtoimage.toPng(node, { filter: that.filterTag }) .then(function (dataUrl) { console.log(dataUrl) that.dataUrl = dataUrl }) .catch(function (error) { console.error('生成失败', error); });},filterTag(node) { console.log(node, node.tagName) return node.tagName == 'IMG'}

注意:先打印一下标签名,一开始以为图片就是img结果是IMG

bgcolor

domtoimage.toPng(node, { bgcolor: '#ddd' }) .then(function (dataUrl) { console.log(dataUrl) that.dataUrl = dataUrl // FileSaver.saveAs(dataUrl, 'a.png'); }) .catch(function (error) { console.error('生成失败', error); });

其他略,没有尝试

下载图片

需要借助:file-saver,基本使用见:FileSaver.js的简单使用

示例:

<template> <div> <div style="padding:50px;width:500px;border:1px solid red;" id="test"> <p>我是p标签</p> <h1>我是h1标签</h1> <div>我是div标签</div> <img src="./11.jpg" style="width:200px;" /> </div> <el-button type="primary" @click="createImage">生成图片</el-button> <div style="width:500px;height:200px;margin-top:20px;border:1px solid red;"> <p>生成的图片</p> <img :src="dataUrl" style="width:200px;" /> </div> </div></template><script>import domtoimage from 'dom-to-image'import FileSaver from 'file-saver';export default { data() { return { dataUrl: '' } }, methods: { createImage() { let node = document.getElementById('test'); let that = this domtoimage.toPng(node) .then(function (dataUrl) { console.log(dataUrl) that.dataUrl = dataUrl FileSaver.saveAs(dataUrl, 'a.png'); }) .catch(function (error) { console.error('生成失败', error); }); }, }}</script>
本文链接地址:https://www.jiuchutong.com/zhishi/295866.html 转载请保留说明!

上一篇:卡鲁拉国家公园里的小湖,爱沙尼亚 (© Sven Zacek/Minden Pictures)(卡拉公路)

下一篇:在Vue 3中使用useStorage轻松实现localStorage功能(vue中的use)

  • 微信朋友圈营销秘籍之5大要点(微信朋友圈营销广告)

    微信朋友圈营销秘籍之5大要点(微信朋友圈营销广告)

  • 网店交易量是这样提高的(淘宝店铺交易指数怎么计算)

    网店交易量是这样提高的(淘宝店铺交易指数怎么计算)

  • 手机知网怎么关联学校(手机知网怎么关联学校不在学校)

    手机知网怎么关联学校(手机知网怎么关联学校不在学校)

  • 拼多多如何换账号登录(拼多多如何换账户)

    拼多多如何换账号登录(拼多多如何换账户)

  • 苹果手机抖音数据分析在哪里看(苹果手机抖音数据分析怎么关闭)

    苹果手机抖音数据分析在哪里看(苹果手机抖音数据分析怎么关闭)

  • 协议组成的三要素(协议组成的三要素包括)

    协议组成的三要素(协议组成的三要素包括)

  • 苹果手机支不支持电信卡(苹果手机支不支持无线反向充电)

    苹果手机支不支持电信卡(苹果手机支不支持无线反向充电)

  • 网易云购买的专辑在哪(网易云购买的专辑可以一起听吗)

    网易云购买的专辑在哪(网易云购买的专辑可以一起听吗)

  • 人脸识别双胞胎能识别吗(人脸识别双胞胎能打开手机吗)

    人脸识别双胞胎能识别吗(人脸识别双胞胎能打开手机吗)

  • 华为mate30pro音量键不灵敏(华为mate30pro音量小怎么办)

    华为mate30pro音量键不灵敏(华为mate30pro音量小怎么办)

  • 一个优酷会员可以登几个手机(一个优酷会员可以登录几台手机)

    一个优酷会员可以登几个手机(一个优酷会员可以登录几台手机)

  • 微信表情旺柴是什么意思(微信表情旺柴是什么狗)

    微信表情旺柴是什么意思(微信表情旺柴是什么狗)

  • 移动魔百盒不让用无线(移动魔百盒不让看无线合理吗)

    移动魔百盒不让用无线(移动魔百盒不让看无线合理吗)

  • mate30与p40区别(mate30跟p40的区别)

    mate30与p40区别(mate30跟p40的区别)

  • 本次呼叫将以点对点短信是什么意思(本次呼叫将以点对点短信是关机吗)

    本次呼叫将以点对点短信是什么意思(本次呼叫将以点对点短信是关机吗)

  • 小米手表color有啥功能(小米手表color有nfc功能吗)

    小米手表color有啥功能(小米手表color有nfc功能吗)

  • 苹果手机开省电模式对电池有影响吗(苹果手机开省电模式玩游戏好不好)

    苹果手机开省电模式对电池有影响吗(苹果手机开省电模式玩游戏好不好)

  • 探探怎么隐藏活跃度(探探怎么暂时隐藏自己)

    探探怎么隐藏活跃度(探探怎么暂时隐藏自己)

  • ps处理人物脸部光线(ps怎么处理人脸)

    ps处理人物脸部光线(ps怎么处理人脸)

  • 要将语言栏显示在桌面上第一步操作应该是(要将语言栏显示在桌面上)

    要将语言栏显示在桌面上第一步操作应该是(要将语言栏显示在桌面上)

  • 快手我的作品怎么删除(快手我的作品怎么不让别人看)

    快手我的作品怎么删除(快手我的作品怎么不让别人看)

  • 手机pp体育怎么投电视(手机pp体育怎么取消自动续费)

    手机pp体育怎么投电视(手机pp体育怎么取消自动续费)

  • 华为p30pr0支持5g吗(华为P30PR0支持多少的无线快充)

    华为p30pr0支持5g吗(华为P30PR0支持多少的无线快充)

  • QQ空间如何置顶说说(qq空间如何置顶说说)

    QQ空间如何置顶说说(qq空间如何置顶说说)

  • 税控盘维护费的分录
  • 劳务报酬个人所得税税率表
  • 当月销售次月开票怎么申报
  • 员工餐补是放入福利费吗?
  • 企业中征码全称
  • 无形资产减值损失一经确认在以后期间不得转回
  • 资本公积可以随时撤出来吗
  • 贷款利息不能抵扣进项税
  • 利润率多少才是正常的
  • 金税盘全额抵扣分录
  • 机器设备折旧计提规定
  • 农产品收购发票可以跨区域开吗
  • 建筑行业未收款先开发票如何做账?
  • 营利性养老机构需要缴纳哪些税
  • 纳税期限与申报的关系
  • 股东打入公户的钱怎么做账
  • 买车的保险可以砍价吗
  • 退休返钱怎么算的
  • 营改增后小规模纳税人
  • 业务招待费在企业所得税税前扣除的标准是什么?
  • 收购发票盖章盖谁的
  • 企业股权设计咨询这个行业怎么样
  • 利润表其他综合收益的税后净额怎么算
  • 商品出口消费税计算方法
  • 解除租赁合同可以退押金吗
  • 企业所得税年报和增值税收入不一致
  • 企业所得税以前年度亏损怎么弥补
  • 企业职工集资款的认定标准
  • 建账时选择什么会计制度
  • Win10 LTSC 2021(长期服务频道)正式版发布: 附MSDN官方ISO纯净镜像下载
  • PHP:mb_ereg_search_pos()的用法_mbstring函数
  • ahqinit.exe是什么进程 ahqinit是安全的进程吗
  • 重装系统后软件打不开
  • PHP:curl_multi_remove_handle()的用法_cURL函数
  • abm文件怎么打开
  • PHP:pg_execute()的用法_PostgreSQL函数
  • 长期应收款属于流动资产吗
  • 亚美尼亚格加尔德修道院
  • 税控盘的发票怎么做账
  • 出口货物应退增值税如何计算
  • 非事业单位企业退休年龄
  • 房产原值是否含增值税
  • 开票软件是什么图标
  • 开票资料电话写错了有关系吗
  • 增值税小规模纳税人适用3%征收率
  • mongodb怎么用
  • 总结帝国cms内容是什么
  • 小规模纳税人开具增值税专用发票
  • 自然人个税申报密码怎么获取
  • 合并会计报表合并范围
  • 成本票可以用在下个季度吗
  • 股东变更会计处理
  • 收到退回的企业所得税分录
  • 公司购买股票会计分录怎么做
  • 应收账款平均余额怎么理解
  • 产品成本计算中最基本的方法是
  • 记账凭证是不是转账凭证
  • 商品盘盈商品会计分录
  • mysql 5.7.17 winx64安装配置方法图文教程
  • win10重大更新
  • ubuntu16.04火狐打不开网页
  • 苹果电脑macbookpro忘记密码
  • 没有光驱有什么影响
  • linux程序死机
  • shine.exe - shine是什么进程 有什么用
  • win8怎么更新到win8.1
  • iptables防火墙规则
  • cocos2d官网
  • js的正则表达式
  • apktool破解应用内购
  • Node.js node-schedule定时任务隔多少分钟执行一次的方法
  • ubuntu不待机
  • 使用驱动器u盘之前需要格式化
  • unity5用什么语言
  • 税控盘税务数字书驱动找不到应用程序是咋回事
  • 贸易型企业进项发票
  • 电子发票和普通发票哪个好
  • 广州市国家税务局稽查局举报中心
  • 以出让方式取得的土地
  • 2020年安徽省护理技能大赛视频播放
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设