第一:引入download.js,以及jQ
第二:抓换图片格式
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<script src="./jQ.js"></script>
<script src="./download.js"></script>
</head>
<body>
<script>
// 将URL格式的图片转为base64格式
let imgSrc = "http://ly-coy.com.cn/ef2f147c-8d74-48a7-9d5d-3f72accf0809.jpg";
//width、height调用时传入具体像素值,控制大小 ,不传则默认图像大小
function getBase64Image(img, width, height) {
// 创建一个canvas画布
var canvas = document.createElement("canvas");
canvas.width = width ? width : img.width;
canvas.height = height ? height : img.height;
var ctx = canvas.getContext("2d");
ctx.drawImage(img, 0, 0, canvas.width, canvas.height);
var dataURL = canvas.toDataURL();
return dataURL;
}
function getCanvasBase64(img) {
var image = new Image();
image.crossOrigin = "";
image.src = img;
var deferred = $.Deferred();
if (img) {
image.onload = function() {
deferred.resolve(getBase64Image(image)); //将base64传给done上传处理
//document.getElementById("container2").appendChild(image);
};
return deferred.promise(); //问题要让onload完成后再return
}
}
getCanvasBase64(imgSrc).then(
function(base64) {
// 这里拿到的是转换后的base64地址,可以做其他操作
// 调用download.js的download方法下载图片
// download 1参数必须是base64格式 2参数是下载的图片名字
download(base64, "资讯图片")
},
);
</script>
</body>
</html>
不足的地方就是图片的名字是固定的,下载多的话只会是 “资讯图片.png”,“资讯图片(1).png”,“资讯图片(2).png”