0

私の C# プログラムでは、考えられる多くの画像を一度に 1 つずつ表示する必要があります。画像はウェブ上にあり、それぞれに正確な URL があります。プログラムは、Web から画像をロードするか、以前にロードされている場合はメモリ/ファイルからロードする必要があります (以前の Web からのロードでは、メモリ/ファイルに保存されているはずです)。これを実装するにはどうすればよいですか?WebRequest オブジェクトを使用して Web からの読み込みを取得できますが、後で高速に使用するために保存するには不十分です。

WebRequest request = WebRequest.Create(imageURL);
Stream stream = request.GetResponse().GetResponseStream();
pictureBoxFirstPack.Image = Image.FromStream(stream);
4

3 に答える 3

1

私はあなたがこれを行うことができるはずだと確信しています:

 MemoryStream ms = new MemoryStream();
 stream.CopyTo(ms);
 Byte[]  data = ms.ToArray();

バイト配列として取得したら、辞書、データベース、または本当に好きな場所に格納できます。

于 2012-07-11T23:40:47.663 に答える
0

WebClient を使用して、次のようにファイルをダウンロードできます。

string fileNameLocally = @"c:\file.jpg";
using(WebClient client = new WebClient())
{
        client.DownloadFile(imageURL, fileNameLocally);
//you can also use DownloadAsyncFile this methods do not block the calling thread.
}
于 2012-07-11T23:44:20.393 に答える
0

Image.Save メソッドを使用して、ダウンロードしたイメージを保存します (MSDN の例に従ってください: http://msdn.microsoft.com/en-us/library/9t4syfhh.aspx ) 。

// Construct a bitmap from the button image resource.
Bitmap bmp1 = new Bitmap(typeof(Button), "Button.bmp");

// Save the image as a GIF.
bmp1.Save("c:\\button.gif", System.Drawing.Imaging.ImageFormat.Gif);

イメージがローカル ストレージに既に存在するかどうかを確認する方法の 1 つは、ダウンロードしたすべてのイメージのハッシュ サムを計算し、辞書に保存することです。

SHA256Managed sha = new SHA256Managed();
byte[] checksum = sha.ComputeHash(stream);
var hash = BitConverter.ToString(checksum).Replace("-", String.Empty);
// Store hash into a dictionary
于 2012-07-11T23:41:53.217 に答える