C#适用于Windows 10的通用应用程序';系统异常';

C#适用于Windows 10的通用应用程序';系统异常';,c#,exception,gif,encode,windows-10-universal,C#,Exception,Gif,Encode,Windows 10 Universal,我正在尝试开发一个将图像编码为gif的应用程序。我找到了这段代码,但它在encode.SetPixelData( readonly List frames=new List(); 公共IAsyncInfo GenerateAsync(存储文件) { 返回AsyncInfo.Run(异步ctx=> { var outStream=await file.OpenAsync(FileAccessMode.ReadWrite); var编码器=等待BitmapEncoder.CreateAsync(Bi

我正在尝试开发一个将图像编码为gif的应用程序。我找到了这段代码,但它在encode.SetPixelData(

readonly List frames=new List();
公共IAsyncInfo GenerateAsync(存储文件)
{
返回AsyncInfo.Run(异步ctx=>
{
var outStream=await file.OpenAsync(FileAccessMode.ReadWrite);
var编码器=等待BitmapEncoder.CreateAsync(BitmapEncoder.GifEncoderId,扩展流);
对于(int i=0;i
是因为缺乏记忆吗? 如何修复此异常


感谢您的帮助:)

innerexception说明了什么?捕获异常并在调试器中检查其详细信息。这将告诉您出了什么问题,并帮助您解决问题。分配的缓冲区不足。(来自HRESULT:0x88982F8C的异常)这是我的错误,这可能会帮助您!
readonly List<byte[]> frames = new List<byte[]>();
    public IAsyncInfo GenerateAsync(StorageFile file)
    {
        return AsyncInfo.Run(async ctx =>
        {
            var outStream = await file.OpenAsync(FileAccessMode.ReadWrite);

            var encoder = await BitmapEncoder.CreateAsync(BitmapEncoder.GifEncoderId, outStream);

            for (int i = 0; i < frames.Count; i++)
            {
                var pixels = frames[i];

                encoder.SetPixelData(BitmapPixelFormat.Rgba8, BitmapAlphaMode.Ignore,
                                     frameWidth, frameHeight,
                                     92.0, 92.0,
                                     pixels);


                if (i < frames.Count - 1)
                    await encoder.GoToNextFrameAsync();
            }

            await encoder.FlushAsync();
            outStream.Dispose();
        });
    }