2015-05-16 14 views
9

Powyższy wyjątek występuje w linii await bitmapImage.SetSourceAsync(fileStream);, gdy próbuję pobrać obraz z lokalnego pliku.Nie można znaleźć komponentu. (Wyjątek od HRESULT: 0x88982F50)

Jest to metoda, której używam do przechowywania i pobierania pliku obrazu.

public async Task<BitmapImage> RetrieveImageFromFile(String fileName) 
    { 
     try 
     { 
      StorageFile localFile = await _storageFolder.GetFileAsync(fileName + "Img"); 
      BitmapImage bitmapImage = new BitmapImage(); 
      using (IRandomAccessStream fileStream = await localFile.OpenAsync(FileAccessMode.Read)) 
      { 
       await bitmapImage.SetSourceAsync(fileStream); 
      } 
      return bitmapImage; 
     } 
     catch(Exception e) 
     { 
      return null; 
     } 
    } 

    public async void WriteImageToFile(string fileName, IRandomAccessStreamWithContentType stream) 
    { 
     StorageFile file = await _storageFolder.CreateFileAsync(fileName + "Img", CreationCollisionOption.ReplaceExisting); 
     Stream streamToSave = stream.AsStreamForWrite(); 
     using (Stream fileStram = await file.OpenStreamForWriteAsync()) 
     { 
      streamToSave.CopyTo(fileStram); 
     } 
    } 

Strumień wejściowy dla sposobu WriteImageToFile są pobierane z contact.Thumbnail.OpenReadAsync metodą

Każda pomoc()?

+0

Przedstawiam ten sam problem ... Czy znalazłeś rozwiązanie? – Pedrom

+2

Mam nadzieję, że już się nad tym rozwinęło, ale błąd 0x88982f50 jest ogólnie związany z błędem odczytu/dekodowania pliku obrazu. Sprawdź, czy twój plik jest poprawnie sformatowany. (Google 88982f50, aby zobaczyć dziesiątki potencjalnie powiązanych poprawek, wszystko związane z we/wy pliku obrazu). To również okazało się moim problemem ... Zły plik. – sraboy

+0

@sraboy dzięki, uratowałeś mi dzień :) złe pliki o rozmiarze 0 bajtów lub błędy formatowania. zawsze powinniśmy sprawdzić, czy strumień został pomyślnie utworzony. – user3290180

Odpowiedz

1

Wystarczy toczenia mój komentarz na odpowiedź, ponieważ to pomaga ludziom:

Błąd 0x88982f50 jest na ogół związane z brakiem odczytu/dekodowania pliku obrazu poprawnie. Sprawdź, czy twój plik jest poprawnie sformatowany. Google 88982f50, aby zobaczyć dziesiątki potencjalnie powiązanych poprawek, wszystko związane z we/wy pliku obrazu. Nigdy nie znalazłem ostatecznego źródła błędu, ale okazało się to również moim problemem ... Zły plik.