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

  • 怎么免费让短视频播放量达到100万?(怎样免费视频)

    怎么免费让短视频播放量达到100万?(怎样免费视频)

  • 苹果手机怎么打开耳机设置(苹果手机怎么打视频电话)

    苹果手机怎么打开耳机设置(苹果手机怎么打视频电话)

  • 联想电脑怎么设置壁纸桌面(联想电脑怎么设置壁纸)

    联想电脑怎么设置壁纸桌面(联想电脑怎么设置壁纸)

  • 小米电视vip怎么取消自动续费(小米电视vip怎么关闭)

    小米电视vip怎么取消自动续费(小米电视vip怎么关闭)

  • 微信发的图片不清晰怎么办(微信发的图片不显示怎么回事)

    微信发的图片不清晰怎么办(微信发的图片不显示怎么回事)

  • 麒麟990几纳米(麒麟990几纳米技术)

    麒麟990几纳米(麒麟990几纳米技术)

  • 电脑上的windows键是哪个键(电脑上的windows怎么打开)

    电脑上的windows键是哪个键(电脑上的windows怎么打开)

  • 抖音的表情包怎么保存到手机(抖音的表情包怎么保存到微信)

    抖音的表情包怎么保存到手机(抖音的表情包怎么保存到微信)

  • 苹果电量只能充到80(苹果电量只能充到81怎么回事)

    苹果电量只能充到80(苹果电量只能充到81怎么回事)

  • iqoo neo3是什么牌子手机(iqooneo3是什么牌子手机怎么读)

    iqoo neo3是什么牌子手机(iqooneo3是什么牌子手机怎么读)

  • 红米k20proufs多少(红米k20pro256g)

    红米k20proufs多少(红米k20pro256g)

  • 苹果手机充电有静电正常吗(苹果手机充电有滋滋的声音)

    苹果手机充电有静电正常吗(苹果手机充电有滋滋的声音)

  • oppo三个键怎么设置(oppo三个键怎么设置导航键)

    oppo三个键怎么设置(oppo三个键怎么设置导航键)

  • 手机相册图片怎么涂鸦(手机相册图片怎么上传到电脑)

    手机相册图片怎么涂鸦(手机相册图片怎么上传到电脑)

  • 华为mate30能否无线充电(mate30带不带无线充电功能)

    华为mate30能否无线充电(mate30带不带无线充电功能)

  • iphone个人热点连上后上不了网(iphone个人热点连接不上什么原因)

    iphone个人热点连上后上不了网(iphone个人热点连接不上什么原因)

  • 追加评价隐藏有用吗(追加评价隐藏有影响吗)

    追加评价隐藏有用吗(追加评价隐藏有影响吗)

  • 苹果手机短信全屏特效(苹果手机短信全删了还有数字)

    苹果手机短信全屏特效(苹果手机短信全删了还有数字)

  • 手机酷狗歌词显示方式(手机酷狗音乐歌词显示不在中间)

    手机酷狗歌词显示方式(手机酷狗音乐歌词显示不在中间)

  • 淘宝电子发票怎么下载(淘宝电子发票怎么删除)

    淘宝电子发票怎么下载(淘宝电子发票怎么删除)

  • 易企秀怎么上传本地音乐(易企秀怎么上传图片为什么找不到)

    易企秀怎么上传本地音乐(易企秀怎么上传图片为什么找不到)

  • 闲聊收款码怎么弄(闲聊群二维码最新)

    闲聊收款码怎么弄(闲聊群二维码最新)

  • BERT模型基本理念、工作原理、配置讲解(图文解释)(bert模型能做什么)

    BERT模型基本理念、工作原理、配置讲解(图文解释)(bert模型能做什么)

  • php算法面试题有哪几种(php算法面试题有答案吗)

    php算法面试题有哪几种(php算法面试题有答案吗)

  • 企业的企业所得税
  • 自动售货机进货渠道
  • 临时用工的会计分录
  • 短期借款利息计提分录
  • 建筑服务预征缴纳税款包括附加税吗
  • 预付的成本票计入什么科目?
  • 印花税不计入应交税科目吗?
  • 没有认证怎么办
  • 需要冲红的普通发票无法收回怎么办
  • 存货跌价准备计提原则
  • 房地产公司转让土地
  • 公司债券投资的优缺点
  • 固定资产折旧法律法规
  • 租赁房屋缴纳什么税
  • 会计学中管理费用属于什么
  • 存货进口关税会计处理怎么做?
  • 公司按最低标准缴纳社保
  • 折扣折让的销售方式有哪些
  • 固定资产报废残料收入的账务处理
  • 代扣代缴的增值税可以作为进项税抵扣吗
  • 应交税费未交增值税明细账
  • 股权购买会计分录
  • 发票过期作废不了怎么办
  • 投资性房地产处置时公允价值变动损益
  • 营改增后不动产发票样本
  • 纳税人证明怎么办理
  • 清算后土增税缴纳计算
  • 生产型企业进口退税政策
  • php parse_url
  • 出库单可以补吗
  • mac电脑色彩设置
  • 房地产企业将开什么发票
  • le启动exe是什么意思
  • 高新技术企业职工总数
  • 若依框架使用
  • 富贵竹怎么养才能更旺盛水培生根
  • 推荐国内免费使用的电影
  • 溢价收购股权会计处理案例
  • 虚拟机安装win11提示无法运行
  • 一般纳税人无票收入怎么报增值税
  • 个税查询和实发工资不符合
  • 社保局申报工伤款多久能下
  • scala实例
  • mysql修改表结构会锁表吗
  • mongodb如何分片
  • 金税盘的服务费
  • 征地拆迁的费用可以作为资产吗
  • SQLserver2008数据库Excel数据导入语句
  • 补计提去年所得税会影响当月资产
  • 发票普通发票
  • 房租已付未收到发票
  • 医院药品进销差价会计核算
  • 应付票据是
  • 股权转让如何计算股权原值
  • 公司注册资本减资流程
  • 小规模企业应交税费分录
  • 计提印花税会计分录怎么写
  • 坏账准备确认坏账
  • 企业办理土地证需要哪些资料
  • 财务控制的方法和措施
  • 几个比较重要的家风
  • unix du
  • windows10的改进
  • win7系统修复工具在哪
  • linux网卡lo
  • mac怎么连续播放视频
  • win8关闭系统更新
  • java.exe是指
  • 开源镜像下载到本地
  • linux vmware命令行
  • win8.1怎么退出安全模式
  • 在linux中使用什么命令可以执行shell脚本
  • win7清洗打印机喷头步骤
  • dom操作元素属性
  • nodejs mongoose
  • css expression 隔行换色
  • pycharm官方教程
  • 客户端名称 android-
  • 换电员工作时间自由吗
  • 什么是税务证书密码
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设