我正在开发一个 WinRT 应用程序,它将进行一些图像处理,我想做的一件事是将一些 jpg 或 png 转换为 gif。我有这样的作品。对于我的一些测试 jpg,它适用于其他人,它是一个得到输出的加扰图像。只是想知道我是否遗漏了什么。这是我到目前为止所拥有的
public async static void ConvertToGif(IRandomAccessStream stream)
{
var decoder = await BitmapDecoder.CreateAsync(stream);
var pixels = await decoder.GetPixelDataAsync();
var file = await KnownFolders.PicturesLibrary.CreateFileAsync("test.gif", CreationCollisionOption.ReplaceExisting);
var outStream = await file.OpenAsync(FileAccessMode.ReadWrite);
var encoder = await BitmapEncoder.CreateAsync(BitmapEncoder.GifEncoderId, outStream);
encoder.SetPixelData(decoder.BitmapPixelFormat, BitmapAlphaMode.Ignore,
decoder.PixelWidth, decoder.PixelHeight,
decoder.DpiX, decoder.DpiY,
pixels.DetachPixelData());
await encoder.FlushAsync();
outStream.Dispose();
}
较小的 jpg 似乎可以工作,但较大的 jpg 会乱码。还有另一种方法可以实现这一目标吗?