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

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
UniApp 中,你可以通过以下步骤来实现保存图片: 1. 在页面中引入 `uni.saveImageToPhotosAlbum` 方法,该方法用于保存图片到相册。 2. 在需要保存图片的地方,添加一个图片标签,并为其绑定一个按事件。 3. 在按事件中,通过 `uni.saveImageToPhotosAlbum` 方法保存图片到相册。 下面是一个示例代码: ```html <template> <view> <!-- 图片标签 --> <image src="/static/image.jpg" @longpress="saveImage"></image> </view> </template> <script> export default { methods: { saveImage() { // 调用uni.saveImageToPhotosAlbum方法保存图片 uni.saveImageToPhotosAlbum({ filePath: '/static/image.jpg', success() { uni.showToast({ title: '保存成功', icon: 'success' }); }, fail() { uni.showToast({ title: '保存失败', icon: 'none' }); } }); } } }; </script> ``` 在上面的示例中,`/static/image.jpg` 是需要保存的图片路径。你可以根据实际情况替换为你自己的图片路径。当用户图片时,会调用 `saveImage` 方法,该方法内部调用 `uni.saveImageToPhotosAlbum` 方法来保存图片到相册。保存成功后,会显示一个成功的 Toast 提示;保存失败则显示一个失败的 Toast 提示。 需要注意的是,为了在 UniApp 中使用 `uni.saveImageToPhotosAlbum` 方法,你需要在 `manifest.json` 文件中的 `uni_modules` 配置中添加 `"name": "uni-save-image"`。 希望这个示例能帮到你!如果有任何问题,请随时提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值