WebClientによるネット上リソースの利用

画像やXML文書などインターネット上のファイルをプログラムで利用したい、という場面は結構あります。そんな時は、WebClientクラスを利用すると、「指定URIのファイルを読み込んだバッファ」「指定URIのファイルを読み込むストリーム」を簡単に作ることができるので便利です。

WebClientを使った画像データ読み込み

このWebClientクラスには、指定URIからバッファ(byte配列)にデータを読み込むDownloadData()、同じくローカルファイルにダウンロードするDownloadFile()、そしてデータを読み込むストリームを作るOpenRead()といったメソッドが用意されています。.NET Frameworkのオブジェクトには、ストリームからデータを読み込めるようになっているものが多いので、実際にデータを利用する時には利用したいデータを扱うオブジェクトにストリームを渡すのが一番簡単かもしれませんね。
いずれもアドレスを指定するだけで手軽に利用できるので、ネット上においてあるリソースを簡単に取得することができます。

たとえば、ネット上から適当な画像(stUrl)を読み込んで画像を生成するには以下のようにします。

  // WebClient生成
  WebClient wcLoader = new WebClient();

  // 指定URLからデータを読み込むストリーム生成
  Stream srLoad = wcLoader.OpenRead(stUrl);

  // ストリームからBitmap作成
  m_bmp = new Bitmap(srLoad);

  // ストリームを閉じる
  srLoad.Close();

エラー処理やデータの確認を行うには一度全体をバッファに読み込んだ方がよさそうですが、ちょっとしたデータの利用ならストリームを開いてそれを渡した方が手軽ですね。

プログラム

プログラムソース表示

今回のプログラムは、指定URIから画像ファイルを読み込んで表示するプログラムです。テキスト入力欄に適当な画像ファイル(jpg/pngなど)を指定し、Loadボタンをクリックしてください。ネット上のファイル(http://〜)のほか、ローカルファイル(file://〜)を読み込むこともできます。


戻る