【问题标题】:try to load base64 img into a canvas尝试将base64图像加载到画布中
【发布时间】:2019-01-19 02:59:36
【问题描述】:

我目前正在尝试将 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;

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

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

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

【问题讨论】:

  • 'Change' 被记录?如果添加image.error=console.error 会怎样?并且您提供的字符串 URL(data... 不是有效的 dataURI。 URL(part 不应该在那里。请尽量做到完整和准确。
  • 这能回答你的问题吗? Base64 PNG data to HTML5 canvas

标签: javascript jquery canvas base64 png


【解决方案1】:

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

这是一个例子

var canvas = document.getElementById('canvas');
var ctx = canvas.getContext('2d');
var image = new Image();
image.onload = function() {
  ctx.drawImage(image, 0, 0);
};
image.src = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAQAAAAngNWGAAAAF0lEQVR42mNk+M9AFGAcVTiqcFQhCAAAf0sUAaSRMCEAAAAASUVORK5CYII=";
<canvas id="canvas"></canvas>

唯一可能出错的是您正在使用的stack[1].save...
您还可以分享您的图像代码或该堆栈上的更多代码吗?

【讨论】:

  • 要向提问者索取更多信息,请使用 cmets 而不是答案。
  • 感谢您的回复,我通过测试您的代码发现了我的错误,这对我很有帮助。事实是我在更改 img 之前没有清除我的画布,img 是该画布的备份(我正在画布上绘图)所以我们仍然看到实际的画布
猜你喜欢
  • 2014-11-17
  • 1970-01-01
  • 2020-04-05
  • 2015-08-31
  • 2018-11-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多