//一般出现跨域, 只需要在图片设置这个属性: 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')
}
``
图片转base64跨域问题
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
相关阅读更多精彩内容
- post 长度是有限定的,如果不做处理,将返回错误,只是这个错误提示有点坑爹(幸亏手贱试了下一张小图) app.u...
- 远程图片转成base64,网上一搜,基本都是说用canvas的toDataURL()来实现,实际上这会遇到跨域安全...
- 为了试验先模拟一下 改hosts 在C:\Windows\System32\drivers\etc加一行 表示调用...
- 当你有多个base64字符串时,使用循环base64.decodestring(i)时,会出现编码错。这时需要使用...