Actualmente estoy trabajando en una aplicación WebSocket que muestra imágenes enviadas por un servidor C++. he visto un par de temas por ahí, pero me parece que no puede deshacerse de este error en Firefox:Mostrar imagen desde blob usando javascript y websockets
de imagen dañado o truncado: Datos: image/png; base64, algunos datos []
Aquí está el código Javascript que estoy usando para mostrar mi burbuja:
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);
}
estoy usando la imagen de un punto rojo que he encontrado en este tema: https://stackoverflow.com/a/4478878/1464608 Y la clase base 64 es de aquí: https://stackoverflow.com/a/246813/1464608
Pero el resultado de base64 que recibo no coincide y Firefox me muestra un error al corromper la imagen.
Sé que esto no es mucha información, pero no tengo ni idea de dónde buscar:/ ¡Cualquier ayuda es más que bienvenida!
Tal vez puedas intentar decodificar tu imagen codificada en otro lugar para asegurarte de que tu método de codificación/descodificación es correcto. –
Intente comparar el resultado de 'Base64.encode (cadena)' a 'btoa (cadena)'. La mayoría de las bibliotecas base64 operan de forma un poco diferente que 'btoa' para bytes de alto valor; tal vez ese es tu problema? – apsillers
Ya he probado btoa() y de hecho está dando un resultado diferente que todavía no está funcionando. – guitio2002