1 npm install html2canvas --save
<template>
<div class="QRCode-box">
<img id="imageWrapper" class="QRCode" src="@/assets/shun.png" alt="" />
<button color="#29c37f" type="info" @click="toSave"
>保存二维码到手机</button
>
</div>
</template> <script lang="ts">
import { defineComponent, onMounted, reactive, ref } from "vue";
import html2canvas from 'html2canvas'
export default defineComponent({
setup() {
const state = reactive<InitData1>({}); const toSave = () => {
const candom: any = document.getElementById("imageWrapper")
html2canvas(candom).then((canvas) => {
let saveUrl = canvas.toDataURL("image/png"); //将图片元素转成base64图片
console.log(saveUrl)
let aLink = document.createElement("a");
let blob = base64ToBlob(saveUrl); //将base64转成blob流
console.log(blob)
let evt = document.createEvent("HTMLEvents");
evt.initEvent("click", true, true);
aLink.download = "二维码.jpg";
aLink.href = URL.createObjectURL(blob); //转成下载链接
aLink.click();
console.log(aLink.href);
if (aLink.href) {
alert('保存成功')
}
});
}; return {
toSave,
};
},
});
// 这里把图片转base64
function base64ToBlob(code: any) {
let parts = code.split(";base64,");
let contentType = parts[0].split(":")[1];
let raw = window.atob(parts[1]);
let rawLength = raw.length;
let uInt8Array = new Uint8Array(rawLength);
for (let i = 0; i < rawLength; ++i) {
uInt8Array[i] = raw.charCodeAt(i);
}
return new Blob([uInt8Array], { type: contentType });
}
</script>

vue将页面(dom元素)转换成图片,并保存到本地的更多相关文章

  1. 将HTML元素转换成图片供用户下载(html2canvas + canvas2Image)

    这是项目中遇到的一个问题,起初觉得把一个html元素生成图片,提供给用户下载的需求挺容易实现的,毕竟看过一些截图的插件,但是在真正操作中遇到了各种各样的问题,比如移动端上截图显示不清晰,html元素中 ...

  2. js实现字符串切割并转换成对象格式保存到本地

    // split() 将字符串按照指定的规则分割成字符串数组,并返回此数组(字符串转数组的方法) //分割字符串 var bStr = "www.baidu.con"; var a ...

  3. PHP将base64数据流转换成图片并保存

    Base64是网络上最常见的用于传输8Bit字节码的编码方式之一,Base64就是一种基于64个可打印字符来表示二进制数据的方法.可查看RFC2045-RFC2049,上面有MIME的详细规范. Ba ...

  4. 使用的是html5的canvas将文字转换成图片

    当前功能的运用场景是:用户需要传文件给他人,在用户选择文件之后需要显示一个文件图标和所选文件的名称. 当前代码部分是摘自网上,但是已经忘记在什么地方获取的,如有侵权联系小弟后自当删除. 注意:必须在h ...

  5. C#技术分享【PDF转换成图片——13种方案】(2013-07-25重新整理)

    原文:C#技术分享[PDF转换成图片--13种方案](2013-07-25重新整理) 重要说明:本博已迁移到 石佳劼的博客,有疑问请到 文章新地址 留言!!! 写在最前面:为了节约大家时间,撸主把最常 ...

  6. 使用float和display:block将内联元素转换成块元素的不同点

    使用float和display:block将内联元素转换成块元素的不同点 使用float和display:block将内联元素转换成块元素的不同点:内联元素可以转换成块级元素,常用的方法比如可以为内联 ...

  7. C#技术分享【PDF转换成图片——11种方案】

    1.[iTextSharp.dll],C# 开源PDF处理工具,可以任意操作PDF,并可以提取PDF中的文字和图片,但不能直接将PDF转换成图片. DLL和源码 下载地址:http://downloa ...

  8. 批量将网页转换成图片或PDF文档技巧分享

    工作中我们有时要将一些批量的网页转换成图片或者PDF文档格式,尽管多数浏览器具有滚动截屏或者打印输出PDF文档功能.可是假设有几十上百张网页须要处理,那也是要人命的.所以我一直想找一款可以批量处理该工 ...

  9. WPF中实现图片文件转换成Visual对象,Viewport3D对象转换成图片

    原文:WPF中实现图片文件转换成Visual对象,Viewport3D对象转换成图片 1.图片文件转换成Visual对象 private Visual CreateVisual(string imag ...

  10. Gson字符串编码,字符串转换成图片保存,二进制转换成图片保存

    import java.io.BufferedInputStream; import java.io.ByteArrayInputStream; import java.io.File; import ...

随机推荐

  1. 01 ansible的基本介绍

    1.现有的企业服务器环境 在现在的企业中,特别是互联网公司,他们的业务量众多:比如负载均衡服务器.web服务器.动态解析(php)服务器.数据库(mysql)服务器以及网站缓存服务器,等等: 例如:一 ...

  2. C++基础之字符输出 cout

    找了一些视频教程,课程的示例是输入一个三角形 要输入这样的图案,思路是可以进行拆解,分为两三角形分别输出,先输入一部分,比如,先输出上半部分三角形: 找到规律,可以发现,上面的三角形是7颗星,也就是说 ...

  3. AppScan的安装及破解1

    (一)AppScan的安装及破解   IBM AppScan是一款目前最好用的Web 应用安全测试工具,Rational AppScan 可自动化 Web 应用的安全漏洞评估工作,能扫描和检测所有常见 ...

  4. Kotlin 基础

    Kotlinbase.kt @file:JvmName("kotlinbaseTest") import kotlin.math.roundToInt as atoInt fun ...

  5. JMeter压测脚本实例:单接口

    新建测试计划 添加线程组 添加HTTP请求 配置该请求相关参数 1.请求头部信息 ①HTTP请求同级线程组下添加HTTP信息头部管理器 ②填充该请求所需的头部信息 2.请求体 选中之前增加的HTTP请 ...

  6. PO、VO、DAO、BO、DTO、POJO 之间的区别

    PO(Persistant Object),持久对象 这个对象是与数据库中的表相映射的Java对象. VO(Value Object),值对象 通常用于业务层之间的数据传递,和PO一样也是仅仅包含数据 ...

  7. 组合构造和对应的OGF/EGF Dictionary 备查

    目录 Constructions Cycle Multiset construction Powerset construction Admissible unlabelled constructio ...

  8. 重学c#系列—— explicit、implicit与operator[三十四]

    前言 我们都知道operator 可以对我们的操作符进行重写,那么explicit 和 implicit 就是对转换的重写. 正文 explicit 就是强制转换,然后implicit 就是隐式转换. ...

  9. java面向对象-类与对象,构造器

    java面向对象-类与对象,构造器 类与对象 package charpter5.Demo; public class Student { //属性:字段 static String name2=&q ...

  10. MyBatisPlus 自动填充演示

    一.数据库 表中新增"添加时间"和"修改时间"字段: