【发布时间】:2011-03-20 17:24:34
【问题描述】:
我有一个监控系统,我想在警报触发时保存来自摄像头的快照。 我已经尝试了很多方法来做到这一点……一切都很好,从相机流式传输快照,然后将其保存为 jpg 在电脑中……。图片(jpg格式,1280*1024,140KB)..没关系 但我的问题在于应用程序性能...... 该应用程序需要大约 20 ~ 30 秒来读取蒸汽,这是不可接受的,因为该方法将每 2 秒调用一次。我需要知道该代码有什么问题以及如何才能更快地获得它。 ? 提前谢谢了 代码:
string sourceURL = "http://192.168.0.211/cgi-bin/cmd/encoder?SNAPSHOT";
byte[] buffer = new byte[200000];
int read, total = 0;
WebRequest req = (WebRequest)WebRequest.Create(sourceURL);
req.Credentials = new NetworkCredential("admin", "123456");
WebResponse resp = req.GetResponse();
Stream stream = resp.GetResponseStream();
while ((read = stream.Read(buffer, total, 1000)) != 0)
{
total += read;
}
Bitmap bmp = (Bitmap)Bitmap.FromStream(new MemoryStream(buffer, 0,total));
string path = JPGName.Text+".jpg";
bmp.Save(path);
【问题讨论】: