Я работаю над приложением WinRT, которое будет выполнять некоторую обработку изображений, и одна из вещей, которую я хочу сделать, - это конвертировать jpg или png в gif. У меня есть что-то такое. Для некоторых моих тестовых jpgs он работает другими, это скремблированное изображение, которое выводит результат. Просто интересно, есть ли что-то, чего я не видел. Вот то, что я до сих порWinRT конвертировать JPG или PNG в GIF
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();
}
Меньшие JPGs, кажется, работают, но более крупные из них вышли перемешаны. Есть ли другой способ достичь этого?
Спасибо, что поделились этим с нами! –