/**
 * 获取图片的 base64 编码
 * @param image 图像对象
 * @return {string} 返回已编码的 base64数据
 */
const getImageBase64 = image => {
	const canvas = document.createElement('canvas')
	 canvas.width = image.width
	 canvas.height = image.height
	 const ctx = canvas.getContext('2d')
	 ctx.drawImage(image, 0, 0, image.width, image.height)
	 // 获取图片后缀名
	 const extension = image.src
	   .substring(image.src.lastIndexOf('.') + 1)
	   .toLowerCase()
	 // 某些图片 url 可能没有后缀名,默认是 png
	 return canvas.toDataURL('image/' + extension, 1)
}

/**
 * 单张图片下载
 * @param url 图像链接
 * @param downloadName 图片名称
 */
export const downloadImage = (url, downloadName) => {
	const link = document.createElement('a')
	 link.setAttribute('download', downloadName)
	 const image = new Image()
	 // 添加时间戳,防止浏览器缓存图片
	 image.src = url + '?timestamp=' + new Date().getTime()
	 // 设置 crossOrigin 属性,解决图片跨域报错
	 image.setAttribute('crossOrigin', 'Anonymous')
	 image.onload = () => {
	   link.href = getImageBase64(image)
	   link.click()
	 }
}

// 如果已经是base64 可以直接使用一下方法即可

export const downloadImage = (url, downloadName) => {
	const link = document.createElement('a')
	link.setAttribute('download', downloadName)
	link.href = url
	link.click()
}