使用BitmapEncoder生成时,如何在循环中进行GIF重复

时间:2013-03-17 20:32:13

标签: c# windows windows-runtime animated-gif

我可以使用BitmapEncoder(C#,WinRT)来创建动画gif。但是,我还没弄清楚如何让GIF循环回来并从头开始?

没有尝试太多,因为我不知道该尝试什么。搜索了在GIF上设置的更多属性,但找不到任何相对的内容。

1 个答案:

答案 0 :(得分:5)

好的,终于能够搞清楚了。显然你需要将以下元数据添加到GIF中以使其循环:

BitmapPropertySet properties = await encoder.BitmapProperties.GetPropertiesAsync("/appext/Data");
properties = new BitmapPropertySet()
{
    {
        "/appext/Application",
        new BitmapTypedValue(Iso8859.Default.GetBytes("NETSCAPE2.0"), Windows.Foundation.PropertyType.UInt8Array)
    },
    { 
        "/appext/Data",
        new BitmapTypedValue(new byte[] { 3, 1, 0, 0, 0 }, Windows.Foundation.PropertyType.UInt8Array)
    },
};

await encoder.BitmapProperties.SetPropertiesAsync(properties);

如果您的项目中没有Iso8859,只需将“NETSCAPE2.0”的ascii代码作为字节数组放在那里。