使用BitmapImage.BeginInit()时未捕获ArgumentException

时间:2011-04-15 22:09:16

标签: c# wpf bitmapimage bitmapsource argumentexception

为什么发生ArgumentException因为image.jpg有一个无效的元数据头,第一个例子是否捕获了异常,第二个例子没有?

示例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);
}

1 个答案:

答案 0 :(得分:0)

可能要等到请求图片加载它,例如设置为Image控件的来源。

如果您添加了

,也许会给您一个例外
src.CacheOption = BitmapCacheOption.OnLoad;

你的声明。