vue h5 保存图片到手机本地相册的方法

效果图
在这里插入图片描述
1、插件和上传接口

import html2canvas from 'html2canvas'
import { upload } from '@/api/accept'

2、结构

<button @click='generateImage'>生成</button><!-- 中间信息展示 --><div class="sevenInfo textLeft" id="target-element"><div class="name">{{ info ? info.auserName : '天翼爱音乐科技有限公司' }}</div><div class="congratulation"><img src="@/assets/images/annualReport/congratulation.png" alt="" /><span>{{month.currentDate}}</span><img class="mon" :src="imageSource" alt="" /></div><div class="number"><div class="title">{{month.currentDate}}月商务视频彩铃播放成绩:</div><div v-if="!tag" class="items"><div class="item"><span>观看人数{{ YearData6.watch_uv }}</span></div><div class="item"><span>人员遍布城市{{ YearData6.city }}</span></div><div class="item"><span>播放次数{{ YearData6.all_pv }}</span></div><div class="item"><span>播放时长{{ YearData6.total_duration }}</span></div></div><div v-else class="items"><div class="item"><span>观看人数1716</span></div><div class="item"><span>人员遍布城市229</span></div><div class="item"><span>播放次数2297</span></div><div class="item"><span>播放时长29,443</span></div></div></div><div class="comeItem"><span>{{month.currentDate+1}}</span><img class="come" src="@/assets/images/annualReport/come.png" alt="" /></div></div>generateImage() {this.$toast('生成海报后长按分享')let that = thissetTimeout(function () {console.log("执行");const element = document.getElementById('target-element') // 替换为目标元素的id或classhtml2canvas(element,{backgroundColor: '#0e0e0e'}).then(canvas => {const image = canvas.toDataURL('image/png')scale: 5dpi: 600, console.log('image', image)let url = that.dataURLtoBlob(image)console.log('url', url)that.videoFile(url)})}, 2000) },// 将base64转成blob 为了后续能上传dataURLtoBlob(dataurl) {var arr = dataurl.split(',')//注意base64的最后面中括号和引号是不转译的var _arr = arr[1].substring(0, arr[1].length - 2)var mime = arr[0].match(/:(.*?);/)[1],bstr = atob(_arr),n = bstr.length,u8arr = new Uint8Array(n)while (n--) {u8arr[n] = bstr.charCodeAt(n)}return new Blob([u8arr], {type: mime})},
// 上传图片videoFile(file) {let params = new window.FormData()let fileOfBlob = new File([file], new Date().getTime() + '.jpg')params.append('file', fileOfBlob)upload(params).then(res => {console.log('上传结果', res)if (res.success) {this.url = res.data.urlthis.savePic(res.data.url)}})},

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/512895.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

95页初级前端模块笔记分享,公司开发web

简历 首先肯定是要准备一份自己的简历&#xff0c;简历经常是给面试官的第一印象。 简历一般包括个人基础信息&#xff0c;专业技能&#xff0c;项目经验&#xff0c;其他模块。 个人基础信息模块就不说了&#xff0c;太基础。 专业技能: 专业技能这一节&#xff0c;最好除了…

LVS负载均衡集群——NAT地址转换模式与DR直接路由

目录 一、LVS集群基本介绍 1、集群是什么&#xff1f; 2、集群的类型 ①负载均衡集群 ②高可用群集 ③高性能运算群集 3、负载均衡集群的结构 第一层&#xff0c;负载调度器 第二层&#xff0c;服务器池 第三层&#xff0c;共享存储 4、LVS负载均衡集群的三种工作模…

操作系统|概述|系统分类——笔记

1.1_1操作系统的概念和功能 操作系统的概念 操作系统&#xff08;Operating System&#xff0c; OS&#xff09; 是指控制和管理整个计算机系统的 硬件和软件 资源&#xff0c;并合理地组织调度计算机和工作和资源的分配&#xff1b; 1操作系统是系统资源的管理者 以提供给用…

uniapp实现---单选题按钮

目录 一、实现思路 二、实现步骤 ①view部分展示 ②JavaScript 内容 ③css中样式展示 三、效果展示 一、实现思路 使用样式布局控制单选框的位置&#xff0c;这里使用的是原生态uniapp&#xff0c;并没有使用组件。 二、实现步骤 ①view部分展示 <template><view …

积分商城管理系统的设计与实现(含源文件)

项目源码&#xff1a;https://gitee.com/oklongmm/biye2 系统介绍&#xff1a; 积分商城管理系统&#xff0c;包括用户模块、商品模块、积分模块和后台管理模块。 一、用户模块&#xff1a; 用户注册与登录&#xff1a;用户可以创建账户并登录系统。 个人信息管理&#xff1…

Yolov8改进交流

YOLO v8改进 YOLOv8的改进&#xff0c;我接触的主要分为网络改进和代码改进&#xff0c;网络改进就是以注意力、主干为主&#xff0c;代码改进就是类似于Iou&#xff0c;类别权重等修改。 以下是yolov8的原始模型。 # Ultralytics YOLO &#x1f680;, AGPL-3.0 license # YO…

循环队列:一道使数据结构萌新知道什么是“愁滋味“的题目

这破题目肝了我一天半才搞明白,也正是因为这道题目,我才豁然明白了李煜所说的"剪不断,理还乱...别是一般滋味在心头"到底是什么"滋味".在完全搞明白之前,真的是放有放不下,理也理不清... 但是理解之后你会发现,嘛い---,也就那么个回事嘛O(∩_∩)O 目录 1…

CAN总线中隐性与显性问题

初学CAN总线时&#xff0c;对于CAN总线中的隐性为逻辑“1”&#xff0c;显性为逻辑“0”的疑惑一直令人困扰。在工控应用中&#xff0c;我们通常将有电压信号称为逻辑“1”&#xff0c;没有电压信号称为逻辑“0”&#xff0c;这与CAN总线的定义看起来不太一致。下面对这个问题进…

第1章:绪论 1.1数据库系统概述

文章目录 1.1 数据库系统概述1.1.1 数据库的4个基本概念1.1.2 数据管理技术的产生和发展1.1.3 数据库系统的特点 1.1 数据库系统概述 1.1.1 数据库的4个基本概念 数据(Data) 是数据库中存储的基本对象 数据的定义&#xff1a;描述事物的符号记录 数据的种类&#xff1a;文本、…

RabbitMQ(控制台模拟收发消息与数据隔离)

1.RabbitMQ架构图 publisher&#xff1a;生产者&#xff0c;也就是发送消息的一方 consumer&#xff1a;消费者&#xff0c;也就是消费消息的一方 queue&#xff1a;队列&#xff0c;存储消息。生产者投递的消息会暂存在消息队列中&#xff0c;等待消费者处理 exchange&…

基于java的宠物常规护理知识管理系统

项目源码&#xff1a;https://gitee.com/oklongmm/biye2 在设计一个宠物常规护理知识管理系统时&#xff0c;我们需要考虑系统的可扩展性&#xff0c;易用性和稳定性。以下是系统设计的功能模块&#xff1a; 一、用户模块&#xff1a; 1. 注册与登录&#xff1a;用户可以通过…