2011-04-15 7 views
0

Почему, когда возникает исключение ArgumentException, потому что у изображения.jpg есть недопустимый заголовок метаданных, первый пример поймает исключение, а второй пример нет?ArgumentException не обнаружено при использовании BitmapImage.BeginInit()

Пример 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); 
} 

ответ

0

Это может ждать, пока изображение не будет предложено загрузить его, например, быть установлен в качестве источника для Image управления.

Возможно, это даст вам исключение, если вы добавили

src.CacheOption = BitmapCacheOption.OnLoad; 

ваших объявлений.

+0

Я установил BitmapImage как свойство Background на границе, но это было первое, что я проверил. Даже когда я не устанавливаю изображение как источник чего-то, исключение все еще происходит. –

+0

Чтобы быть ясным, вы говорите, что оба примера бросили исключение, но что исключение не было обнаружено в примере 2? – RandomEngy

+0

Да. Оба бросали исключение всякий раз, когда возникает проблема с загружаемым изображением, но исключение не было обнаружено в примере 2. –

 Смежные вопросы

  • Нет связанных вопросов^_^