4

私はいくつかの画像処理を行う WinRT アプリケーションに取り組んでおり、やりたいことの 1 つは、いくつかの 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 は機能しているように見えますが、大きいものはスクランブルされて出力されます。これを達成する別の方法はありますか?

4

1 に答える 1

4

問題は、私が PixelWidth/Height を使用していたことであり、OrientedPixelWidth/Height を使用していたはずです。

これで私の問題は解決したようです。

于 2012-09-23T22:43:45.763 に答える