0

Bing Maps から URI を取得できますが、結果のファイル (.jpg など) を保存しようとすると、空です (1 x 1 サイズなど)。イベント処理を備えた WPF アプリでは問題なく動作していますが、コンソール アプリではどうすればよいですか?

WPF で動作するコードを次に示しますが、コンソール アプリでは同じコードが失敗します。これは、ファイルがイベント ハンドラーに保存されており、(私の知る限り)コンソール アプリでは実行できないためだと思います。

public void vSaveBitmapImage(string sURI, // created with Bing Maps GeocodeServices
  string sLocFname)
{
  // save file name so event handler knows it
  this.sFname = sLocFname;

  try
  {
    BitmapImage bmpImage = new BitmapImage(new Uri(sURI, UriKind.RelativeOrAbsolute));
    // setup event handler - file is saved just fine here
    bmpImage.DownloadCompleted += vImage_DownloadCompleted;
  }
  catch (SystemException sex)
  {
    string s = sex.Message;
  }
}

/// <summary>
/// handle the event that an image download has completed
/// </summary>
private void vImage_DownloadCompleted(object sender,
  EventArgs e)
{
  try
  {
    JpegBitmapEncoder encoder = new JpegBitmapEncoder();

    encoder.Frames.Add(BitmapFrame.Create((BitmapImage)sender));

    using (var filestream = new FileStream(this.sFname, FileMode.Create))
      encoder.Save(filestream);
  }
  catch (SystemException sex)
  {
    string s = sex.Message;
  }
}
4

1 に答える 1