尝试将 base64 img 加载到画布中

tho*_*asA 3 javascript jquery base64 png canvas

我目前正在尝试将 base64 img 加载到我的画布中

  console.log('Change');
  var canvas = document.getElementById('canvas');
  var ctx = canvas.getContext('2d');
    var image = new Image();
    image.onload = function() {
      ctx.drawImage(image, 0, 0);
    };
    image.src = stack[1].save;
Run Code Online (Sandbox Code Playgroud)

stack[1].save 包含一个有效的 base64 png img URL('data:image/png;base64,xxxxxx'),当我将此 URL 粘贴到浏览器中时,我可以看到一个有效的 img

事实是没有任何改变,我没有任何错误

如果你能帮助我,那就太棒了,谢谢

Hel*_*eda 6

是的,您共享的代码应该可以正常工作。

这是一个例子

const canvas = document.getElementById('canvas')
const ctx = canvas.getContext('2d')

var image = new Image();
image.onload = () => { ctx.drawImage(image, 0, 0) }
image.src = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAQAAAAngNWGAAAAF0lEQVR42mNk+M9AFGAcVTiqcFQhCAAAf0sUAaSRMCEAAAAASUVORK5CYII="

var image2 = new Image()
image2.onload = () => { for(i=1; i<9; i++) ctx.drawImage(image2, 30*i, 5+4*i) }
image2.src = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO 9TXL0Y4OHwAAAABJRU5ErkJggg=="
Run Code Online (Sandbox Code Playgroud)
<canvas id="canvas"></canvas>
Run Code Online (Sandbox Code Playgroud)

唯一可能出错的是stack[1].save你正在使用......