uniapp h5如何保存图片到本地
时间: 2023-09-22 07:13:51 浏览: 337
H5快照+下载图片到本地+源码
UniApp H5可以通过以下方法保存图片到本地:
1. 使用HTML5的canvas将图片绘制到画布上,然后使用canvas.toDataURL()方法将画布内容转换为base64编码的字符串,最后使用FileSaver.js将字符串保存为图片文件。
代码示例:
```
// 获取图片
let img = new Image()
img.src = 'https://example.com/image.jpg'
// 将图片绘制到画布上
let canvas = document.createElement('canvas')
canvas.width = img.width
canvas.height = img.height
let ctx = canvas.getContext('2d')
ctx.drawImage(img, 0, 0)
// 将画布内容转换为base64编码的字符串
let dataURL = canvas.toDataURL()
// 保存为图片文件
let blob = dataURLtoBlob(dataURL)
saveAs(blob, 'image.jpg')
// 将base64编码的字符串转换为Blob对象
function dataURLtoBlob(dataURL) {
let arr = dataURL.split(',')
let mime = arr[0].match(/:(.*?);/)[1]
let bstr = atob(arr[1])
let n = bstr.length
let u8arr = new Uint8Array(n)
while (n--) {
u8arr[n] = bstr.charCodeAt(n)
}
return new Blob([u8arr], { type: mime })
}
```
2. 使用HTML5的download属性,在a标签上设置download属性和href属性,href属性则为图片的链接,当用户点击a标签时,浏览器会自动下载图片文件到本地。
代码示例:
```
// 获取图片
let img = new Image()
img.src = 'https://example.com/image.jpg'
// 创建a标签
let a = document.createElement('a')
a.href = img.src
a.download = 'image.jpg'
document.body.appendChild(a)
// 模拟用户点击a标签
a.click()
// 移除a标签
document.body.removeChild(a)
```
以上两种方法都可以将图片保存到本地,可以根据实际需求选择适合自己的方法。
阅读全文