从本地计算机重复加载图片框控件中的图像
本文关键字:控件 图像 加载 计算机 | 更新日期: 2023-09-27 18:34:34
>我有一些 c# 代码,可以从网页获取图像,然后将其下载到我的本地计算机。 这是在后台完成的 1/秒。 如果我保持运行状态,它可以正常工作,并且我的图片会正确更新。 这些图片基本上是来自相机的馈送。 我想将这些图片放入图片框或其他控件中,以便我可以像显示相机源一样显示图像。 但是,当我尝试这样做时,我收到错误,说正在使用图像,因此我无法将其加载到我的图片框中。有没有更好的方法可以做到这一点?
谢谢
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;
如果您需要该文件,请加载文件内容并复制到 MemoryStream 并使用 Image.FromStream。如果您不需要该文件,则可以跳过它并直接从下载中使用MemoryStream...(速度更快,因为不需要访问光盘。