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

标签 javascript asp.net image

我正在尝试使用另一个团队拥有的服务器端代码,并且我无法轻易更改该代码。它正在处理图像并通过 Response.BinaryWrite 返回它:

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' failed: The string to be编码包含 Latin1 范围之外的字符”。

我真的只是希望能够显示和使用此图像 - 因此任何让它出现在 Canvas 中或将其转换为数据 URL 等的方法都会帮助我。我错过了什么吗?

最佳答案

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

如果你想在canvas中显示图像,可以通过以下方式实现

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>';

关于javascript - 如何在 ASP.NET Response.BinaryWrite 生成的 Javascript 中处理字节数组图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20495965/

相关文章:

javascript - 从 Facebook 帖子打开 Chrome/Firefox (Android OS) 的 URL 方案

javascript - 3 切换表格列排序

javascript - 如何在javascript中创建get方法?

asp.net - 在同一页面中处理来自不同提供商的 AuthenticationResult

python - cv2.rectangle 给出错误 size.width>0 && size.height>0

javascript - 使用 list.js 排序/搜索时列表项消失

javascript - Jquery asp.net 错误

image - 在 Bootstrap 3 中放大图像

ios - 从给定指针的位图中访问图像数据

c# - 请求中对象的值在wcf服务中始终为null