我正在尝试使用另一个团队拥有的服务器端代码,并且我无法轻易更改该代码。它正在处理图像并通过 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/