2015-05-16 23 views
9

Ngoại lệ trên xảy ra tại dòng await bitmapImage.SetSourceAsync(fileStream); bất cứ khi nào tôi cố truy xuất hình ảnh từ tệp cục bộ.Không tìm thấy thành phần. (Ngoại lệ từ HRESULT: 0x88982F50)

Đây là phương pháp tôi đang sử dụng để lưu trữ và truy xuất tệp hình ảnh.

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

Các dòng đầu vào cho phương pháp WriteImageToFile được lấy từ contact.Thumbnail.OpenReadAsync) phương pháp

Bất kỳ sự giúp đỡ (?

+0

Tôi đang trình bày cùng một vấn đề ... Bạn có tìm thấy giải pháp không? – Pedrom

+2

Hy vọng rằng bạn đã làm việc xung quanh điều này ngay bây giờ nhưng lỗi 0x88982f50 thường liên quan đến việc không đọc/giải mã tệp hình ảnh một cách chính xác. Xác minh tệp của bạn được định dạng đúng. (Google 88982f50 để xem hàng chục bản sửa lỗi có liên quan tiềm ẩn, tất cả liên quan đến tệp hình ảnh I/O.) Điều này hóa ra là sự cố của tôi ... Tệp không hợp lệ. – sraboy

+0

@sraboy cảm ơn, bạn đã lưu một ngày cho tôi :) các tệp không hợp lệ có kích thước 0 byte hoặc lỗi định dạng. chúng ta nên luôn kiểm tra xem luồng đã được tạo thành công chưa – user3290180

Trả lời

1

Chỉ cần chuyển bình luận của tôi vào một câu trả lời từ nó được giúp đỡ mọi người:

Các lỗi 0x88982f50 thường liên quan đến một sự thất bại để đọc/giải mã một tập tin hình ảnh một cách chính xác. Xác minh tệp của bạn được định dạng đúng. Google 88982f50 để xem hàng chục bản sửa lỗi có liên quan tiềm ẩn, tất cả đều liên quan đến tệp hình ảnh I/O. Tôi không bao giờ tìm thấy một nguồn dứt khoát cho lỗi nhưng điều này hóa ra là vấn đề của tôi cũng ... Bad file.

Các vấn đề liên quan