我正在尝试使用另一个团队拥有的服务器端代码,而且我无法轻易更改。它正在处理图像并通过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'失败了:字符串是encoded包含Latin1范围之外的字符“。
我真的只是希望能够显示和使用这个图像 - 所以任何使它出现在画布中,或将其转换为数据URL等的方法都会帮助我。我错过了什么吗?
答案 0 :(得分:0)
如果您只想显示图片,为什么不将src
img
属性{@ 1}}标记到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>';