c# – 如何在框架中拆分.gif文件?

c# – 如何在框架中拆分.gif文件?,第1张

概述我找到的所有代码都给了我相同的结果:一堆精确的框架.含义:它给出了第一帧的列表,重复X次.我使用的.gif有30帧,所以我得到第一帧的30倍,而不是30帧. public static Image[] GetFramesFromAnimatedGIF(Image IMG) { List<Image> IMGs = new List<Image>(); int 我找到的所有代码都给了我相同的结果:一堆精确的框架.含义:它给出了第一帧的列表,重复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次.

这是应该看的(使用网页).看看每个框架是如何不同的?

这是在将数组内的每个帧保存在文件夹位置(一堆相​​等的帧)之后它找我的样子:

P.S.:是的,它是我正在使用的图像.gif.

更新:问题似乎是当我在OpenfileDialog中读取文件时,因为如果我通过代码传递我的.gif文件就可以了.那么如何在OpenfileDialong中阅读动画gif?谢谢.

解决方法
imgs.Add(img);

这就是错误,你一遍又一遍地添加相同的img对象.您需要制作框架的深层副本.这很容易做到:

imgs.Add(new Bitmap(img));
总结

以上是内存溢出为你收集整理的c# – 如何在框架中拆分.gif文件?全部内容,希望文章能够帮你解决c# – 如何在框架中拆分.gif文件?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/1249879.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-07
下一篇2022-06-07

发表评论

登录后才能评论

评论列表(0条)

    保存