我不是javascript专家(我是JAVA / ATG开发人员),并且遇到以下问题:
我正在尝试获取先前编码的base64图像的值以在画布上呈现。
base 64映像的值来自Java Bean。
我的代码如下:
var imageObj = new Image();
imageObj.src = dataURIStringSyntax.value + imgData.value;
imageObj.onload = function(){
context.drawImage(imageObj, 0, 0);
}
...其中dataURIStringSyntax
是'data:image / jpg; base64',图像的一部分,而imgData
是base64代码。这些是使用var dataURIStringSyntax = document.getElementById("dataURIStringSyntaxString");
设置的var imgData = document.getElementById("dataURL");
这会导致在画布上呈现黑色块,而不是实际图像。
但是,如果我执行以下操作:
imageObj.src = "data:image/jpg;base64,/9j/4AAQSkZJRgABAQEAYABgAAD/4RD0...
正如我所料,图像在画布上呈现。
我能做错什么?我可以通过添加相关值来补充imgObj.src
以上的方式会破坏某些东西吗?
非常感谢任何帮助。
更新:事实证明图像的原始编码已损坏,因此修复后,它现在正在运行。 感谢那些提出建议的人。 :)
答案 0 :(得分:0)
尝试将onload函数放在.src之上。生成时图像可能已经加载,因此onload在设置之前被调用。