2015-05-16 35 views
9

L'eccezione sopra riportata si verifica alla riga await bitmapImage.SetSourceAsync(fileStream); ogni volta che si tenta di recuperare l'immagine dal file locale.Impossibile trovare il componente. (Eccezione da HRESULT: 0x88982F50)

Questo è il metodo che sto utilizzando per archiviare e recuperare il file immagine.

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

Il flusso di input per il metodo WriteImageToFile viene recuperato da contact.Thumbnail.OpenReadAsync metodo

Qualsiasi aiuto()?

+0

Sto presentando lo stesso problema ... Hai trovato una soluzione? – Pedrom

+2

Speriamo che abbiate già lavorato su questo, ma l'errore 0x88982f50 è generalmente correlato a un errore di lettura/decodifica di un file immagine correttamente. Verifica che il tuo file sia formattato correttamente. (Google 88982f50 per vedere dozzine di correzioni potenzialmente correlate, tutte relative all'I/O del file immagine.) Questo risultò essere il mio problema ... File non valido. – sraboy

+0

@sraboy grazie, mi hai salvato un giorno :) file non validi con dimensioni 0 byte o errori di formattazione. dovremmo sempre verificare se lo stream è stato creato con successo – user3290180

risposta

1

Basta trasformare il mio commento in una risposta dal momento che è stato aiutare le persone:

L'errore 0x88982f50 è generalmente legato ad un errore di lettura/decodificare un file di immagine in modo corretto. Verifica che il tuo file sia formattato correttamente. Google 88982f50 per visualizzare dozzine di correzioni potenzialmente correlate, tutte relative all'I/O del file immagine. Non ho mai trovato una fonte definitiva per l'errore, ma questo è risultato essere il mio problema ... File non valido.

Problemi correlati