找不到该组件。 (来自HRESULT的异常:0x88982F50)

时间:2015-05-16 08:08:15

标签: c# stream windows-runtime windows-phone-8.1 storagefile

每当我尝试从本地文件中检索图像时,就会在行await bitmapImage.SetSourceAsync(fileStream);发生上述异常。

这是我用来存储和检索图像文件的方法。

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

从contact.Thumbnail.OpenReadAsync()方法中检索WriteImageToFile方法的输入流

任何帮助?

2 个答案:

答案 0 :(得分:1)

只是将评论转变为答案,因为它一直在帮助人们:

0x88982f50错误通常与无法正确读取/解码图像文件有关。验证您的文件格式正确。谷歌88982f50可以看到许多与潜在相关的修复,都与图像文件I / O有关。我从来没有找到错误的确切来源,但结果也是我的问题......糟糕的文件。

答案 1 :(得分:0)

最新答案,但可能使其他人免于花费数小时来寻找答案...

错误代码0x88982f50为WINCODEC_ERR_COMPONENTNOTFOUND,这是Windows Imaging Component表示无法解码图像文件的方式。

文件很可能已损坏,或者Windows中安装的WIC版本不包含对其进行解码所需的编解码器。

Microsoft提供了零信息。