c# - 如何在框架中拆分 .gif?

标签 c# image frame gif

我找到的所有代码都给我相同的结果:一堆外观精确的框架。意思是:它给了我第一帧的列表,重复了 X 次。我使用的 .gif 有 30 帧,所以我得到第一帧的 30 倍,而不是 30 个不同的帧。

    public static Image[] GetFramesFromAnimatedGIF(Image IMG)
    {
        List<Image> IMGs = new List<Image>();
        int Length = IMG.GetFrameCount(FrameDimension.Time);

        for (int i = 0; i < Length; i++)
        {
            IMG.SelectActiveFrame(FrameDimension.Time, i);
            IMGs.Add(IMG);
        }

        return IMGs.ToArray();
    }

我错过了什么?我看过的所有代码都将第一帧重复了 X 次。

这是应该看起来的样子(使用网页)。看看每一帧有何不同?

enter image description here

这是在将数组中的每个帧保存到文件夹位置(一堆相​​同的帧)后它为我寻找的内容:

enter image description here

P.S.:是的,我使用的是 .gif 图片。

更新:问题似乎出在我在 OpenFileDialog 中读取文件时,因为如果我通过代码传递我的 .gif 它会起作用。那么如何在 OpenFileDialong 中读取动画 gif?谢谢。

最佳答案

   IMGs.Add(IMG);

这就是问题所在,您一遍又一遍地添加相同的 IMG 对象。您需要对框架进行深度复制。这很容易做到:

   IMGs.Add(new Bitmap(IMG));

关于c# - 如何在框架中拆分 .gif?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33062087/

相关文章:

java - 关闭单个窗口会关闭java中的所有框架

c# - 关闭/销毁 FtpWebRequest

c# - 在 C# 服务中获取连接字符串

c# mysql - 当描述相同时添加库存值和新条目

c# - 在 MVVM 中给出一些命令来查看

php - 这是我插入数据库的图像。但它不会显示文件夹中的图像路径或图像?

php - 即时创建拇指与上传后创建拇指

android - 将位图保存到文件

java - 单击关闭按钮时 awt 窗口不关闭

facebook - 拒绝在框架中显示 facebook.com/xti.php,因为它将 X-Frame-options 设置为 sameorigin