我的磁盘上有一堆.web文件。我现在想在WinForm应用程序内的图片框中显示这些文件(一个接一个(。将webp转换为位图是可行的。问题是某些webp文件已设置动画。
该应用程序应该能够查看webp文件是静态的还是动画的,并且应该将其转换为可以在图片框中显示的内容。
这是我当前显示静态webp文件的代码:
Imazen.WebP.SimpleDecoder decoder = new Imazen.WebP.SimpleDecoder();
var bytes = File.ReadAllBytes(filename);
var bitmap = decoder.DecodeFromBytes(bytes, bytes.Length);
pictureBox1.Image = bitmap;
这使用了libwebp的包装器。但我对不同的资源/图书馆完全满意。网站上提到的大多数方法都要求你已经知道目标类型(例如gif jpg等(。任何输入均已通知。
检查System.Drawing.Animator类。它适用于GIF,但理论上应该支持任何支持动画的位图(bitmap.CanAnimate(。您需要手动设置计时器和任务,以便在指定的时间绘制帧。
话虽如此,乍一看,您选择的库并不能处理动画位图。