uniapp 长按保存图片功能

再没有后端url的情况下,前端根据div生成base64位图片,然后下载到本地,具体代码如下

引入npm包

npm i html2canvas
div转换成base64
				let self =this;
				// 获取想要转换的 DOM 节点
				const dom = self.$refs['ref'].$el;
				// DOM 节点计算后宽高
				let width = self.$refs.ref.$el.offsetWidth
				let height = self.$refs.ref.$el.offsetHeight
				// 获取像素比
				// const dpr = window.devicePixelRatio || 1;
				const dpr = window.devicePixelRatio || 1;
				// 创建自定义 canvas 元素
				const canvas = document.createElement('canvas');
				// 设定 canvas 元素属性宽高为 DOM 节点宽高 * 像素比
				canvas.width = width * dpr;
				canvas.height = height * dpr;
				// 设定 canvas css宽高为 DOM 节点宽高
				canvas.style.width = `${width}px`;
				canvas.style.height = `${height}px`;
				// 获取画笔
				const context = canvas.getContext('2d');
				// 将所有绘制内容放大像素比倍,解决dpr不同图片模糊问题
				// context.scale(dpr, dpr);
				// 将自定义 canvas 作为配置项传入,开始绘制
				html2canvas(dom, {canvas}).then((canvas) => {
				    let dataUrl = canvas.toDataURL("image/png", 1.0);
				    // let parent = dom.parentNode;
					self.dataUrl=dataUrl;
					console.log(self.dataUrl)
					this.saveImage(dataUrl)
					// self.downLoad(dataUrl)
				    // parent.innerHTML = `<img src="${dataUrl}" style="width: 100%">`;
				});		
下载功能参考官网

https://uniapp.dcloud.io/api/media/image.html#saveimagetophotosalbum

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值