如何在ASP.NET Response.BinaryWrite生成的Javascript中处理字节数组映像



我正在尝试使用另一个团队拥有的服务器端代码,这些代码我无法轻易更改。它正在处理图像并通过响应返回。二进制写入:

MemoryStream ms = new MemoryStream();
image.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
var imageToReturn = ms.ToArray();
Response.ContentType = "image/jpg";
Response.BinaryWrite(imageToReturn);

然而,当我尝试对结果进行标准的客户端处理时,比如使用Javascript的btoa()将其从字节数组转换为ArrayBuffer,我会收到诸如"'btoa'失败:要编码的字符串包含Latin1范围之外的字符"之类的消息。

我真的只想能够显示和处理这个图像——所以任何能让它出现在画布上,或者将它转换为数据URL等的方法都会帮助我。我是不是错过了什么?

如果您只想显示图像,为什么不将img标记的src属性添加到ASP.Net页面的url中呢?ASP.Net页面正在响应中的中写入JPG。

若你们想在画布上显示图像,你们可以用以下方式

myimage = new Image();
myimage.onload = function () {
    var canvas = document.getElementById('canv');
    var ctx = canvas.getContext('2d');
    ctx.drawImage(myimage, x, y);
}
myimage.src = '<url to the asp.net page>';

最新更新