其他分享
首页 > 其他分享> > vue中下载图片、下载字符流图片,将图片链接转换成base64格式进行下载

vue中下载图片、下载字符流图片,将图片链接转换成base64格式进行下载

作者:互联网

1. 一般情况下,我们可以使用 a 标签进行图片的下载,但有时候只是页面的跳转,并没有进行下载,此时可以加一个download属性。

  <a href="http://xxxx.xx.com:xx.jpg" target="_blank" download='xx.jpg'>

2. 将图片链接转换成base64格式,再进行下载。

HTML部分代码如下:

// 参数为可选项
<div @click="downloadImg('图片的地址', '图片的名称')">点击下载</div>

JS部分代码如下:

以下这个方法是根据图片的url返回一个base64编码:

getUrlBase64(imgUrl) {
   return new Promise(resolve => {
     let canvas = document.createElement('canvas')
     let ctx = canvas.getContext('2d')
     let img = new Image()
     //允许进行跨域
     img.crossOrigin = 'Anonymous' 
     img.src = imgUrl
     img.onload = function() {
       canvas.height = 300
       canvas.width = 300
       ctx.drawImage(img, 0, 0, 300, 300)
       let dataURL = canvas.toDataURL('image/png')
       canvas = null
       resolve(dataURL)
     }
   })
 },

调用方法:

// url指点击时传入的图片地址
// name指点击时传入的图片名称
downloadImg(url, name) {
  this.getUrlBase64(url).then(base64 => {
     let link = document.createElement('a')
     link.href = base64
     link.download = name
     link.click()
   })
 },

标签:canvas,img,300,base64,let,图片链接,下载,图片
来源: https://blog.csdn.net/weixin_42881768/article/details/116494278