我目前正在开发一个WebSocket应用程序,该应用程序会显示由C++服务器发送的图像。我看到了一些相关主题,但是在Firefox浏览器中似乎无法解决以下错误:
图像损坏或截断:data:image/png;base64,[一些数据]
这是我用来显示blob的JavaScript代码:
socket.onmessage = function(msg) {
var blob = msg.data;
var reader = new FileReader();
reader.onloadend = function() {
var string = reader.result;
var buffer = Base64.encode(string);
var data = "data:image/png;base64,"+buffer;
var image = document.getElementById('image');
image.src = data;
};
reader.readAsBinaryString(blob);
}
我使用在这个主题上找到的红点图片:https://dev59.com/xm855IYBdhLWcg3wMRVW#4478878,而 Base64 类来自于这里:https://dev59.com/_HVC5IYBdhLWcg3wlyIo#246813
但是我得到的 base64 结果不匹配,Firefox 提示图片损坏。虽然我没有太多信息,但我不知道该去哪里寻找 :/ 任何帮助都将不胜感激!!
Base64.encode(string)
的结果与btoa(string)
进行比较。大多数base64库对于高值字节的操作与btoa
有所不同;也许这就是你的问题所在? - apsillers