Estoy tratando de enviar una imagen (cortada en varios pedazos) por mqtt, recibirla en mi aplicación e imprimirla.
Este es el código de recepción.
function onMessageArrived(r_message) { nbr=nbr+1; // count number of message console.log("message here "+nbr); //console.log(r_message.payloadBytes); if (r_message.payloadBytes != 'end'){ console.log("i'm in the if"); b64c = (r_message.payloadBytes); // the b64c is decalred as var b64c = new String(); console.log(b64c); myjpeg = myjpeg + _base64ToArrayBuffer(b64c); // add the part of image to myjpeg decalred as let myjpeg } else{ console.log("i'm in the else "); console.log(r_message.payloadBytes); myjpeg = arrayBufferToBase64(myjpeg); // transform an uint8array to base 64 document.getElementById('img_import').src = "data:image/jpg;base64," + myjpeg; // print image }y el código de la función bas64toarray:
function _base64ToArrayBuffer(base64) { var binary_string = window.atob(base64); var len = binary_string.length; var bytes = new Uint8Array(len); for (var i = 0; i < len; i++) { bytes[i] = binary_string.charCodeAt(i); } return bytes.buffer; }La parte de la imagen se envía como base64 pero la recibo en forma de Uint8array, estoy tratando de decodificar base64 usando _base64ToArray() pero no funciona, tal vez porque b64c no es una cadena y tengo este error:

Entonces, ¿alguien sabe cómo puedo decodificar b64c?