0

Webページから画像を取得してローカルマシンにダウンロードする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;
4

1 に答える 1

0

ファイルが必要な場合は、ファイルの内容をロードしてMemoryStreamにコピーし、Image.FromStreamを使用します。ファイルが必要ない場合は、ファイルをスキップして、ダウンロードから直接MemoryStreamを使用できます...(ディスクアクセスが必要ないため、より高速です。)

于 2012-05-17T19:04:08.103 に答える