我有一些c#代码从网页获取图像然后将其下载到我的本地计算机。这是在后台1 /秒完成的。如果我让这个运行它工作正常,我的图片得到正确更新。这些图片基本上来自相机。我想将这些图片放入图片框或其他控件中,以便我可以将图像显示为相机Feed。然而,当我尝试这样做时,我有错误说图像正在被使用,所以我无法将其加载到我的图片框中。有更好的方法吗?
谢谢,
byte[] lnBuffer;
byte[] lnFile;
HttpWebRequest lxRequest = (HttpWebRequest)WebRequest.Create(uri);
lxRequest.Credentials = credentials;
using (HttpWebResponse lxResponse = (HttpWebResponse)lxRequest.GetResponse())
{
using (BinaryReader lxBR = new BinaryReader(lxResponse.GetResponseStream()))
{
using (MemoryStream lxMS = new MemoryStream())
{
lnBuffer = lxBR.ReadBytes(1024);
while (lnBuffer.Length > 0)
{
lxMS.Write(lnBuffer, 0, lnBuffer.Length);
lnBuffer = lxBR.ReadBytes(1024);
}
lnFile = new byte[(int)lxMS.Length];
lxMS.Position = 0;
lxMS.Read(lnFile, 0, lnFile.Length);
lxMS.Close();
lxBR.Close();
}
}
lxResponse.Close();
}
using (System.IO.FileStream lxFS = new FileStream("images/camppic1.jpg", FileMode.Create))
{
lxFS.Write(lnFile, 0, lnFile.Length);
lxFS.Close();
}
这是我用来创建文件的。然后在这段代码之后的同一方法中我这样做:
image = Image.FromFile(“C:\ camppic1.jpg”);
pictureBox23.Image = image;
答案 0 :(得分:0)
如果您需要该文件,请加载文件内容并复制到MemoryStream并使用Image.FromStream。如果您不需要该文件,您可以跳过它并直接从下载中使用MemoryStream ...(更快,因为不需要光盘访问。)