js实现保存图片到相册
时间: 2024-01-21 19:02:49 浏览: 19
由于安全原因,JavaScript 无法直接保存图片到相册,需要借助浏览器的 API。以下是在浏览器中使用 JavaScript 保存图片到相册的步骤:
1. 创建一个 Image 对象,设置图片的 src 属性为需要保存的图片的地址。
```javascript
var img = new Image();
img.src = 'https://example.com/image.jpg';
```
2. 等待图片加载完成,确保图片加载完成后才能进行下一步操作。可以使用 onload 事件来判断图片是否加载完成。
```javascript
img.onload = function() {
// 图片加载完成后的操作
};
```
3. 创建一个 Canvas 对象,并将图片绘制到 Canvas 上。
```javascript
var canvas = document.createElement('canvas');
canvas.width = img.width;
canvas.height = img.height;
var ctx = canvas.getContext('2d');
ctx.drawImage(img, 0, 0, img.width, img.height);
```
4. 调用 Canvas 对象的 toDataURL 方法获取图片的 Base64 编码字符串。
```javascript
var base64 = canvas.toDataURL('image/jpeg', 1);
```
5. 创建一个 a 标签,设置 href 属性为 Base64 编码字符串,并设置 download 属性为保存的文件名。
```javascript
var link = document.createElement('a');
link.href = base64;
link.download = 'image.jpg';
```
6. 将 a 标签添加到文档中,并模拟点击 a 标签触发下载。
```javascript
document.body.appendChild(link);
link.click();
document.body.removeChild(link);
```
完整的代码如下:
```javascript
var img = new Image();
img.src = 'https://example.com/image.jpg';
img.onload = function() {
var canvas = document.createElement('canvas');
canvas.width = img.width;
canvas.height = img.height;
var ctx = canvas.getContext('2d');
ctx.drawImage(img, 0, 0, img.width, img.height);
var base64 = canvas.toDataURL('image/jpeg', 1);
var link = document.createElement('a');
link.href = base64;
link.download = 'image.jpg';
document.body.appendChild(link);
link.click();
document.body.removeChild(link);
};
```