我不是一个JavaScript专家(是一个JAVA/ATG开发者),和我遇到一些麻烦以下:问题越来越画布渲染的base64图像
我想要得到的值之前编码的base64图像在画布上呈现。
base 64映像的值来自Java Bean。
我的代码如下:
var imageObj = new Image();
imageObj.src = dataURIStringSyntax.value + imgData.value;
imageObj.onload = function(){
context.drawImage(imageObj, 0, 0);
}
...其中dataURIStringSyntax
是“数据:图像/ 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
的方式来破坏某些东西吗?
任何帮助将不胜感激。
更新:事实证明,图像的原始编码是腐败的,所以修正后,它现在工作。 感谢那些提出建议的人。 :)
你在连接中缺少一个逗号,不是吗? – jhohlfeld
检查后,没有。 'dataURISyntaxString'是'data:image/jpg; base64'。应该有另一个? – dradd
尝试将构造的字符串记录到控制台('console.log(dataURIStringSyntax.value + imgData.value)')并将其复制/粘贴到新的选项卡/地址栏中,如果图像正确,则应显示图像 – K3N