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

  • 做微信营销必须知道的8个技巧(微信营销需要具备什么条件)

    做微信营销必须知道的8个技巧(微信营销需要具备什么条件)

  • qq音乐如何查看自己的听歌时间(qq音乐如何查看第一次听这首歌)

    qq音乐如何查看自己的听歌时间(qq音乐如何查看第一次听这首歌)

  • 手机淘宝怎么看总消费(手机淘宝怎么看交易快照)

    手机淘宝怎么看总消费(手机淘宝怎么看交易快照)

  • 隔空投送失败(隔空投送失败是为什么)

    隔空投送失败(隔空投送失败是为什么)

  • b站音乐区怎么进(b站音乐区视频怎么做)

    b站音乐区怎么进(b站音乐区视频怎么做)

  • 手机粘贴板出现莫名其妙的乱码(手机粘贴板出现莫名其妙的链接)

    手机粘贴板出现莫名其妙的乱码(手机粘贴板出现莫名其妙的链接)

  • ipadair3容易弯吗(ipad air3容易变弯吗)

    ipadair3容易弯吗(ipad air3容易变弯吗)

  • 抖音显示在线时间准吗(抖音显示在线时间最长多久)

    抖音显示在线时间准吗(抖音显示在线时间最长多久)

  • hd6850相当于什么显卡(hd6850相当于什么集显)

    hd6850相当于什么显卡(hd6850相当于什么集显)

  • 手机自动发验证码(手机自动发验证码怎么办)

    手机自动发验证码(手机自动发验证码怎么办)

  • 美团骑手站长能控制单量吗(美团骑手站长能不能设置远近单)

    美团骑手站长能控制单量吗(美团骑手站长能不能设置远近单)

  • 拼多多聚宝盆在哪里打开(拼多多里聚宝盆)

    拼多多聚宝盆在哪里打开(拼多多里聚宝盆)

  • 苹果耳机加减没反应(苹果耳机加减没有声音)

    苹果耳机加减没反应(苹果耳机加减没有声音)

  • 微信管理员有什么权限(微信管理员是什么工作)

    微信管理员有什么权限(微信管理员是什么工作)

  • 一加8是什么牌子(一加是什么牌子的手机怎么样)

    一加8是什么牌子(一加是什么牌子的手机怎么样)

  • 健康码怎么查询(健康码怎么查询家人的)

    健康码怎么查询(健康码怎么查询家人的)

  • iphone6s支持10w快充吗(6s支持18w快充)

    iphone6s支持10w快充吗(6s支持18w快充)

  • 快手点赞有限制吗(快手点赞有限制时间吗)

    快手点赞有限制吗(快手点赞有限制时间吗)

  • 快手关注的人全部恢复(快手关注的人全部没了,购买的课件也没了怎么回事)

    快手关注的人全部恢复(快手关注的人全部没了,购买的课件也没了怎么回事)

  • 11pro四个摄像头怎么同时拍摄(11pro max前面有4个摄像头)

    11pro四个摄像头怎么同时拍摄(11pro max前面有4个摄像头)

  • 苹果手机进水了屏幕咋整(苹果手机进水了会坏吗)

    苹果手机进水了屏幕咋整(苹果手机进水了会坏吗)

  • 什么叫群限制搜索(什么叫群限制搜索功能呢)

    什么叫群限制搜索(什么叫群限制搜索功能呢)

  • 电话打多了会封号吗(电话打多了会封卡了会使用不了吗)

    电话打多了会封号吗(电话打多了会封卡了会使用不了吗)

  • 360手机1809一A01是啥型号(360手机1607-a01)

    360手机1809一A01是啥型号(360手机1607-a01)

  • potato怎么加真人群(potato怎么找到真人)

    potato怎么加真人群(potato怎么找到真人)

  • 手机如何连接点读机(手机如何连接外网)

    手机如何连接点读机(手机如何连接外网)

  • 抖音怎么锁喜欢的视频(抖音怎么锁喜欢的)

    抖音怎么锁喜欢的视频(抖音怎么锁喜欢的)

  • 【前端】从零开始读懂Web3(前端开发从入门到放弃)

    【前端】从零开始读懂Web3(前端开发从入门到放弃)

  • 两年前的发票可以补开吗
  • 其他个人出租不动产
  • 金税盘电子发票怎么读入
  • 发票勾选平台怎么导出未勾选的发票
  • 个税缴款三方协议
  • 红字信息表可以开一半吗
  • 现金支出的一般程序
  • 怎么确定印花税申报成功
  • 小企业销售商品因批量原因给予客户的商业折扣
  • 地税保险单位编号是什么
  • 没有申报增值税不能领发票吗
  • 金税盘问题
  • 私营企业所得税是多少
  • 以现金形式发放的员工餐费补贴,可并入职工福利费
  • 企业职工不稳定,还能享受小微企业所得税优惠吗?
  • 个人出租商业用房取得的所得
  • 增值税交完之后还要交什么税
  • 不应该计入管理费用的
  • 小规模税收减免
  • 发票冲红后多交多少税
  • 个人所得税的征收
  • 盘盈的固定资产怎么做账务处理
  • 哪里有办各种真实有效的证的
  • bios设置详细介绍配图
  • 浅谈12 条用于 Linux 的 MySQL/MariaDB 安全最佳实践
  • 关于工程材料的质量控制说法正确的是
  • 我为什么要满足你的要求
  • 香椿的功效与作用百度百科
  • mac系统存储好大
  • php读取word
  • php数据库连接失败怎么办
  • 融资性售后回租承租方为什么不交税
  • 什么是企业最佳融资方式
  • php封包
  • 莫纳皮拉
  • 预计利润表中的销售成本如何计算
  • laravel 5.4中实现无限级分类的方法示例
  • php静态属性和静态方法
  • thinkphp console
  • 值得深思的短句
  • 税控盘总是连接服务器失败
  • 专票当天可以领取吗
  • 与下级往来账户贷方核算的内容有
  • 利息收入可以冲减开发成本的法律依据
  • 网上学电脑哪个软件好
  • 计提税费可以记入成本吗
  • 银行本票怎么办理转账
  • mongodb用法
  • 财政拨款结转是
  • 社保代扣代缴的规定
  • mysql触发器菜鸟教程
  • 应交税费的核算范围
  • 如何查询开出的电子发票
  • 主营业务收入借方什么意思
  • 减免的残保金怎么做分录
  • 计提工资时个税怎么处理
  • 单位的收入是刷卡怎么做账?
  • 税收罚款支出计算公式
  • 服务业成本的会计核算
  • 培训费做什么会计分录
  • 发票报销是什么流程
  • mysql分区语句
  • sql查询生成器
  • 如何找回丢失数据
  • win8.1补丁包
  • centos怎么连接远程服务器
  • centos重新安装命令
  • windows桌面右下角图标不显示
  • Node.js Sequelize如何实现数据库的读写分离
  • perl编程
  • 画廊作品
  • vue中父子组件如何通信的
  • 基于unity3d
  • 车票进项税怎么认证
  • 深圳小微企业税收优惠政策2023
  • 财税36号文附件3
  • 南京市国家税务局官网
  • 国家税务局总局咨询平台
  • 吉林省国税局网站官网
  • 2018年税务局
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设