10

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 方法的输入流

有什么帮助吗?

4

2 回答 2

4

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

0x88982f50 错误通常与无法正确读取/解码图像文件有关。验证您的文件格式是否正确。谷歌 88982f50 可查看数十个可能相关的修复程序,均与图像文件 I/O 相关。我从来没有找到错误的确切来源,但这也是我的问题......文件错误。

于 2017-03-28T18:28:31.357 回答
2

迟到的答案,但可能会避免其他人花费数小时来寻找这个......

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

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

Microsoft 提供有关它的零信息。

于 2019-06-21T23:34:53.140 回答