C#适用于Windows 10的通用应用程序';系统异常';
我正在尝试开发一个将图像编码为gif的应用程序。我找到了这段代码,但它在encode.SetPixelData(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
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();
});
}