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

  • 华为怎么设置来电铃声(华为怎么设置来电拦截)

    华为怎么设置来电铃声(华为怎么设置来电拦截)

  • airpods和普通蓝牙耳机的区别

    airpods和普通蓝牙耳机的区别

  • 探探是不是要花钱才能聊天(探探是不是花钱才能玩)

    探探是不是要花钱才能聊天(探探是不是花钱才能玩)

  • 怎么才能得到抖音卡(怎么才能得到抖音投稿同城推荐)

    怎么才能得到抖音卡(怎么才能得到抖音投稿同城推荐)

  • b站直播中心在哪(b站直播中心在哪电脑)

    b站直播中心在哪(b站直播中心在哪电脑)

  • e35没有信号什么意思?(e41无信号)

    e35没有信号什么意思?(e41无信号)

  • 怎么退出修订模式(退出修订状态)

    怎么退出修订模式(退出修订状态)

  • ipad己停用是什么意思(2020版ipad已停用)

    ipad己停用是什么意思(2020版ipad已停用)

  • 手机插耳机进去不显示耳机模式(手机插耳机进去又弹出来)

    手机插耳机进去不显示耳机模式(手机插耳机进去又弹出来)

  • 华为手机可以投屏到电脑吗(华为手机可以投屏小米电视吗)

    华为手机可以投屏到电脑吗(华为手机可以投屏小米电视吗)

  • 微视与抖音的区别(微视与抖音的区别在哪里)

    微视与抖音的区别(微视与抖音的区别在哪里)

  • 苹果x摄像头型号(苹果x摄像头长啥样)

    苹果x摄像头型号(苹果x摄像头长啥样)

  • 苹果拉黑的号码在哪看(苹果拉黑的号码可以收到短信吗)

    苹果拉黑的号码在哪看(苹果拉黑的号码可以收到短信吗)

  • 京东评价晒图怎么弄(京东评价晒图怎么拍)

    京东评价晒图怎么弄(京东评价晒图怎么拍)

  • 电脑回收站在哪里打开(电脑回收站在哪win10)

    电脑回收站在哪里打开(电脑回收站在哪win10)

  • 手机前置摄像头进水了怎么办(手机前置摄像头是真实的自己吗)

    手机前置摄像头进水了怎么办(手机前置摄像头是真实的自己吗)

  • 3g4g区别(3g和4g区别)

    3g4g区别(3g和4g区别)

  • 系统框图有哪些部分组成(系统框图设计)

    系统框图有哪些部分组成(系统框图设计)

  • 小米6是什么屏幕(小米6是什么屏幕lcd)

    小米6是什么屏幕(小米6是什么屏幕lcd)

  • 苹果xs港版支持全网通吗(苹果xs港版可以用电信卡吗)

    苹果xs港版支持全网通吗(苹果xs港版可以用电信卡吗)

  • 荣耀20与荣耀20pro区别(荣耀20与荣耀20pro手机壳通用吗)

    荣耀20与荣耀20pro区别(荣耀20与荣耀20pro手机壳通用吗)

  • 拼多多怎么一起付款(拼多多怎么一起下单)

    拼多多怎么一起付款(拼多多怎么一起下单)

  • 国美如何查订单(国美订单如何查询)

    国美如何查订单(国美订单如何查询)

  • 为什么打别人电话一直在通话中(为什么打别人电话响了自动挂断)

    为什么打别人电话一直在通话中(为什么打别人电话响了自动挂断)

  • IDEA使用vue的安装与配置(详细教程)(idea安装vue.js)

    IDEA使用vue的安装与配置(详细教程)(idea安装vue.js)

  • 解决CentOS 安装出现

    解决CentOS 安装出现"-bash: wget: 未找到命令"解决方案(centos安装软件教程)

  • 递延所得税资产账务处理
  • 公司缴纳养老保险不在个人账户里吗
  • 交易性金融资产的账务处理
  • 管理费用借贷方都有,如何结转
  • 税票抵扣是用进项票还是销项票
  • 客运地方税务局监制发票还能用吗?
  • 应付债券利息计入哪里
  • 押金计入什么费用
  • 专用发票扣税
  • 增值税发票是需要先对公转账吗
  • 工程发票的备注栏
  • 关于进项税额转出的规定
  • 季度不超30万需计提增值税吗
  • 建筑材料发票备注栏没写工程名称和工程地点能用吗
  • 建筑企业无票支出如何处理
  • 制造企业享受增值税政策
  • 上报汇总完成,远程清卡清不了
  • 教培机构房租占比
  • 发票未到计提房租费用会计分录
  • 原材料和加工费能分着开票么
  • 收到服务费发票怎么做账
  • 其他应付款无法支付的账务处理方法
  • 新税法中工资薪金的规定
  • php制作一个表单
  • thinkphp paginate
  • 个税返还会计政策
  • 转出未交增值税借方余额表示什么
  • php中cookie和session的区别
  • 用应付票据付应收账款
  • 增值税的计税依据包括关税吗
  • netsurf.exe - netsurf是什么进程 有什么用
  • codelite怎么进行编译
  • post请求怎么用
  • php curl_init
  • php接收ajax请求
  • css案例教程
  • php常用命令
  • vue组件通信方法
  • php邮箱smtp发信源码
  • 印花税是1%吗
  • 国税纳税申报表下载
  • 个人独资企业怎么注销
  • 报税财务报表怎么申报
  • 新会计准则分录大全
  • 企业收入总额的计算公式
  • 一般纳税人增值税税率
  • 零申报不报税有什么后果
  • 机器设备计提折旧纳税调整
  • 一般整形医院的药在哪进货
  • mysql创建临时表并赋值
  • 小规模未开票收入按1%还是3%
  • 公司购买不动产契税税率
  • 政府扶助资金
  • 已认证的发票开具红字发票账务处理?
  • 企业优惠政策是什么意思
  • 分公司可以独立签约吗
  • 电脑开票怎么操作流程
  • mysql 复制表结构并把满足条件的数据添加到新表
  • 巧妙设置Vista任务栏和开始菜单的属性
  • vista ui
  • c盘的windows
  • centos 安装
  • 每天一条linux命令
  • 苹果Mac系统怎么安装
  • w10消费者版本和专业版区别
  • Win10 TH2正式版偷偷恢复/篡改成对应的预装应用
  • linux的含义
  • w10自启
  • dpd参数
  • 如何搭建环境变量
  • unity3d怎么样
  • node.js中的http.response.end方法使用说明
  • python3.5 + PyQt5 +Eric6 实现的一个计算器代码
  • 使用权资产
  • shell脚本 su
  • 使用jquery实现的项目
  • 国家税务总局使用
  • 税务局监制的收据哪里买
  • 工会经费少申报一个月可以下个月补上吗
  • 税务绩效管理主要内容
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设