2
这是我的第一个ASP.NET应用程序,我无法将服务器端Bitmap对象传递给JavaScript客户端。我使用SignalR来连接服务器和客户端。如何将位图从ASP.NET传递到JavaScript并显示它?
我已经尝试了几件事情,希望对于有ASP.NET经验的人来说这很容易。
这里是我的服务器端的C#:
public void ScreenShot()
{
Rectangle bounds = this.Bounds;
using (Image bitmap = new Bitmap(bounds.Width, bounds.Height))
{
using (Graphics g = Graphics.FromImage(bitmap))
{
g.CopyFromScreen(new Point(bounds.Left, bounds.Top), Point.Empty, bounds.Size);
}
Clients.Caller.updateImage(bitmap);
}
}
在客户端我想要得到的位图,它显示:
hubproxy.client.updateImage = function (image) {
var img = document.createElement("img");
img.src = image;
document.body.appendChild(img);
};
我必须将它转化成JSON对象?如果我这样做,我怎样才能让它回到客户端的图像?
在此先感谢您的帮助。
非常感谢。鉴于图像文件仍然需要传输,您如何节省网络流量?我认为通过发送原始数据我可以节省一些时间,而不会产生将映像写入磁盘的成本。 – 2014-10-03 19:49:31
图像的base64表示比二进制大。 http://stackoverflow.com/questions/11402329/base64-encoded-image-size – 2014-10-04 01:33:08
你不需要写入磁盘,你可以在内存中缓存它,并让控制器使用GUID作为标识符返回映像。使用SignalR发布该GUID – Anders 2014-10-07 07:05:23