Trabajando completamente en el lado del cliente, tengo la intención de usar un servicio HTTP que responda a una solicitud POST enviando un archivo BMP con el tipo de respuesta establecido en image/bmp .
¿Cómo puedo dibujar esta imagen en un objeto de lienzo HTML usando JavaScirpt?
Aquí hay un fragmento de código que da como resultado una imagen incomprensible (¿debido a un procesamiento incorrecto de los datos binarios sin procesar?):
function refresh() { var request = new XMLHttpRequest(); request.open('POST', 'imgview'); request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); request.setRequestHeader('Response-Type', 'image/bmp'); request.onload = function(event) { if (request.status >= 200 && request.status < 300) { var blob = new Blob([request.response], {type: 'image/bmp'}); var imageURL = window.URL.createObjectURL(blob); var image = new Image; image.crossOrigin = "Anonymous"; image.onload = function() { console.log(image.width) document.body.appendChild(image); var canvas = document.getElementById("canvas"); var context = canvas.getContext('2d'); context.drawImage(image, 0, 0); } image.src = imageURL; } else { // [...] } }; // [...] request.send(requestText);