图片转base64跨域问题

//一般出现跨域, 只需要在图片设置这个属性: crossorigin="anonymous"  允许跨域  即可 

 <img  src="https://www.baidu.com/" id ="img"  crossorigin="anonymous"> 

<button id='btn'>下载</button>

function  imgToBase64() {

    let img = document.getElementById('img)

    let canvas = document.createElement('cavas')

    canvas.width = 100 

    canvas.width = 100

    let ctx = canvas.getContext('2d');

    ctx.drawImage(img,0,0)

     retrun canvas.toBaseUrl('image/png')

}

// 下载图片

document.getElementById('btn').onclick= () => {

    let a  = document.createElement('a')

    a.setAttribute('href',  imgToBase64() ) 

    a.setAttribute('download', 'img.png' )

    a.click()

    a.remove()

}

尽管设置了允许跨域,依然出现画布被污染的报错提示  ,所有 换了一种方式 



function  imgToBase64() {

    let img = new Image()

    img.src = 'https://www.baidu.com/'

    img.setAttribute('crossorigin', ' *' )

    let canvas = document.createElement('cavas')

    canvas.width = 100 

    canvas.width = 100

    let ctx = canvas.getContext('2d');

   img.onload = () => {

     ctx.drawImage(img,0,0)

        downloadImg ( canvas.toBaseUrl('image/png') )

    }

}



function downloadImg(src){

    const qrLinkEl = document.createElement('a')

    qrLinkEl.setAttribute('href', url)

    qrLinkEl.setAttribute('download', 'qr.png')

    qrLinkEl.click()

    qrLinkEl.removeAttribute('click')

}
``
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容