前端怎样通过https://aliyuncs.com/images/001.jpg图片地址下载转为图片文件
时间: 2023-07-14 16:56:02 浏览: 99
选择图片,在线图片压缩并下载(纯前端)
前端可以通过以下步骤将图片地址下载并转换为图片文件:
1. 使用 JavaScript 创建一个新的 Image 对象。
```
const img = new Image();
```
2. 将图片地址赋值给 Image 对象的 src 属性。
```
img.src = 'https://aliyuncs.com/images/001.jpg';
```
3. 监听 Image 对象的 onload 事件,确保图片已经加载完成。
```
img.onload = function() {
// 图片已经加载完成
}
```
4. 在 onload 事件的回调函数中,可以使用 canvas 将图片绘制到画布上,然后使用 toDataURL() 方法将画布转换为 base64 编码的图片数据,最后将数据转换为图片文件并下载。
```
const canvas = document.createElement('canvas');
const ctx = canvas.getContext('2d');
canvas.width = img.width;
canvas.height = img.height;
ctx.drawImage(img, 0, 0, img.width, img.height);
const dataURL = canvas.toDataURL('image/jpeg');
const blob = dataURLToBlob(dataURL);
download(blob, 'image.jpg');
function dataURLToBlob(dataURL) {
const arr = dataURL.split(',');
const mime = arr[0].match(/:(.*?);/)[1];
const bstr = atob(arr[1]);
let n = bstr.length;
const u8arr = new Uint8Array(n);
while (n--) {
u8arr[n] = bstr.charCodeAt(n);
}
return new Blob([u8arr], { type: mime });
}
function download(blob, fileName) {
const a = document.createElement('a');
const url = URL.createObjectURL(blob);
a.href = url;
a.download = fileName;
a.click();
URL.revokeObjectURL(url);
}
```
上面的代码将图片地址下载并转换为 JPEG 格式的图片文件,并自动下载到本地。
阅读全文