位置: 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)

  • 华硕键盘灯光怎么关(华硕键盘灯光怎么设置)

    华硕键盘灯光怎么关(华硕键盘灯光怎么设置)

  • 华为手表来电不震动怎么设置(华为手表来电不响铃的原因)

    华为手表来电不震动怎么设置(华为手表来电不响铃的原因)

  • 微信限额是什么意思(微信限额是什么样子)

    微信限额是什么意思(微信限额是什么样子)

  • 我国的手机号为什么是11位(我国使用的手机号码为多少位)

    我国的手机号为什么是11位(我国使用的手机号码为多少位)

  • vivo x30上市时间(vivo x30是什么时候发布的)

    vivo x30上市时间(vivo x30是什么时候发布的)

  • 微博黑名单在哪里(微博黑名单在哪里找)

    微博黑名单在哪里(微博黑名单在哪里找)

  • 华为mate30手电筒快捷键(华为mate30手电筒在哪里)

    华为mate30手电筒快捷键(华为mate30手电筒在哪里)

  • 登录提示用户名不存在(登录时为什么显示用户名失效)

    登录提示用户名不存在(登录时为什么显示用户名失效)

  • 网易云可以同时两部手机登录吗(网易云可以和多个人一起听歌吗)

    网易云可以同时两部手机登录吗(网易云可以和多个人一起听歌吗)

  • 手机不支持陀螺仪怎么办(手机不支持陀螺仪但是必须要用怎么办)

    手机不支持陀螺仪怎么办(手机不支持陀螺仪但是必须要用怎么办)

  • 发朋友圈的意义是什么(发朋友圈的意义只想让你知道)

    发朋友圈的意义是什么(发朋友圈的意义只想让你知道)

  • qq在线文件和离线文件的区别(qq文件在线发送和离线发送)

    qq在线文件和离线文件的区别(qq文件在线发送和离线发送)

  • 荣耀note8是什么屏幕(荣耀note8怎么样)

    荣耀note8是什么屏幕(荣耀note8怎么样)

  • 域名系统的阐述及作用(域名系统的基本概念)

    域名系统的阐述及作用(域名系统的基本概念)

  • 华为充电器接口叫什么(华为充电器接口图片)

    华为充电器接口叫什么(华为充电器接口图片)

  • 华为如何取消录屏黑屏(华为如何取消录屏的白点设置)

    华为如何取消录屏黑屏(华为如何取消录屏的白点设置)

  • 拼多多怎么关闭自动扣费(拼多多怎么关闭0元先使用后付款)

    拼多多怎么关闭自动扣费(拼多多怎么关闭0元先使用后付款)

  • 淘宝怎样从收藏移到购物车(淘宝怎么从收藏夹下单)

    淘宝怎样从收藏移到购物车(淘宝怎么从收藏夹下单)

  • ipadproa1670是几代(ipad a1673是几代)

    ipadproa1670是几代(ipad a1673是几代)

  • 快手如何置顶自己作品(快手怎么置顶自己作品)

    快手如何置顶自己作品(快手怎么置顶自己作品)

  • 怎么改手机时间(华为手机怎么改手机时间)

    怎么改手机时间(华为手机怎么改手机时间)

  • bios设置独立显卡教程(bios设置独立显卡优先启动)

    bios设置独立显卡教程(bios设置独立显卡优先启动)

  • XP系统停止维护之后无光盘怎么安装Win7系统(停止维护win7)

    XP系统停止维护之后无光盘怎么安装Win7系统(停止维护win7)

  • 个体户定期定额征收标准
  • 林业一般纳税人的税率是多少?
  • 未达起征点标志
  • 成立小规模纳税人注册资金多少
  • 企业放贷利息收多少合适
  • 劳务费确认收入
  • 查补的税款怎样做账
  • 商业汇票的使用范围
  • 电子承兑背书一般多久到账
  • 办公室零食采购台账
  • 在筹建期间的费用属于什么
  • 出口退税退的是哪部分税
  • 法院受理费用
  • 汇算清缴补交的所得税怎么记帐
  • 研发新产品成功案例简短
  • 出售办公用房要交什么税
  • 年度汇算清缴怎么填写
  • 企业所得税申报时间
  • 金融业营业税改增值税
  • 清包工程增值税税率
  • 4800的个人所得税
  • 银行利息现金流量表什么科目
  • 哪些记账凭证
  • 个税申报工资比实际工资高,汇算清缴时能退吗
  • 小规模超过30万是全额交税吗
  • 电梯维保公司缴税标准
  • windows10不会自动锁屏
  • Win10 20H2 KB5001391补丁包更新内容汇总
  • 哪些固定资产不会随着时间的流逝贬值
  • ubuntu18.04 u盘安装
  • 应收账款怎么做分录
  • 同业拆入属于哪个行业
  • linux入门学习
  • Thinkphp+smarty+uploadify实现无刷新上传
  • 母公司将资产划转子公司土地增值税
  • 所得税费用怎么计算公式
  • 工程项目合同签订
  • 生产企业出口退税申报流程操作
  • framework4.0怎么打开
  • golang、python、php、c++、c、java、Nodejs性能对比
  • dom-to-image原理
  • 集团公司对子公司的内部审计
  • 装修费摊销会计准则
  • phpcms教程
  • 差旅费报销有哪些
  • 企业出口证明
  • MongoDB的mongo shell常用操作方法及操作脚本笔记
  • 清算存货分配给股东账分录
  • 国际货运代理需要什么样的人才
  • 一般纳税人税务的比例
  • 本年利润会计处理流程
  • 金税四期对建筑行业有什么影
  • 账面价值低于可抵税收
  • 人力资源外包服务包括哪些
  • 转入企业银行存款利息分录
  • 出口退税申报的报关单无电子信息
  • 公司销售二手车怎么申报增值税
  • 增值税政策依据
  • 客户用个人账户转4s店开公司的机动车发票
  • 从银行取现金是什么凭证
  • 固定资产处置有净值怎么处理
  • 购买农药化肥怎么入账
  • 租赁办公楼
  • mysql建索引有哪些策略和原则
  • 怎么彻底卸载visual
  • Qq浏览器怎么切换成极速模式
  • Solaris 远程磁带备份步骤
  • crypt什么文件
  • dll进程
  • xp系统的程序和功能在哪里
  • linux CentOS WEB服务器分区方案
  • windows多屏显示
  • win10 edge浏览器
  • gnu grub卸载
  • Win10 mobile 10586.107升级后会出现哪些bug?
  • 微信 cookies
  • ext.formpanel
  • ftp批量下载文件命令
  • js if语句怎么写
  • unity怎么做触屏按键
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设