0

为什么当由于 image.jpg 具有无效的元数据标头而发生 ArgumentException 时,第一个示例捕获异常,而第二个示例没有捕获异常?

示例 1:

try
{
Uri myUri = new Uri("http://example.com/image.jpg", UriKind.RelativeOrAbsolute);
JpegBitmapDecoder decoder2 = new JpegBitmapDecoder(myUri,
                             BitmapCreateOptions.PreservePixelFormat,
                             BitmapCacheOption.Default);
BitmapSource bitmapSource2 = decoder2.Frames[0];
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}

示例 2:

try
{
BitmapImage src = new BitmapImage();
src.BeginInit();
src.UriSource = new Uri("http://example.com/image.jpg");
src.EndInit();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
4

1 回答 1

0

它可能一直在等待图像被请求加载,例如被设置为Image控件的源。

如果您添加,也许它会给您一个例外

src.CacheOption = BitmapCacheOption.OnLoad;

到你的声明。

于 2011-04-15T22:33:14.490 回答