编辑: xiong447385 2019-12-16
ImageAnimator类显示动画图片 ImageAnimator类显示动画图片 (1)ImageAnimator类?? 用于动画处理包含基于时间的帧的图像.

(2)Animate()方法 ?? 该方法将多帧图像显示为动画. ? 格式:public static void Animate ( Image image, EventHandler onFrameChangeHandler) ? image 要动画处理的Image对象 ? onFrameChangedHandler:指定在动画帧发生更改时调用的方法. (3)CanAnimate()方法 ? 此方法返回一个布尔值,该值指示指定图像是否包含基于时间的帧. ?参数为要测试的Image方法,如果指定图像包含基于时间的帧,则方法返回True. (4).StopAnimate()方法 ? 终止正在运行的动画. (5)UpdateFrames()方法 ?此方法使帧在图像中迁移.新帧在下一次呈现图像时绘制.此方法只适用于包含基于时间的帧的图像. ?它的参数为更新帧的Image对象. 实例代码: ?private Image m_imgImage = null;

??????? private EventHandler m_evthdlAnimator = null;

??????? public Form1()//// InitializeComponent();

this.SetStyle(ControlStyles.UserPaint, true);

this.SetStyle(ControlStyles.DoubleBuffer, true);

this.SetStyle(ControlStyles.AllPaintingInWmPaint, true);

TODO: Add any constructor code after InitializeComponent call m_evthdlAnimator = new EventHandler(OnImageAnimate);

Debug.Assert(m_evthdlAnimator != null);

重写打印方法 ??????? protected override void OnPaint(PaintEventArgs e) base.OnPaint(e);

if (m_imgImage != null) UpdateImage();

绘制图片的当前帧 e.Graphics.DrawImage(m_imgImage, new Rectangle(10, 10, m_imgImage.Width, m_imgImage.Height));

加载测试用的Gif图片 ??????? protected override void OnLoad(EventArgs e) base.OnLoad(e);

m_imgImage = Image.FromFile("1.GIF");

// 加载测试用的Gif图片 BeginAnimate();

//调用方法 ??????? private void UpdateImage() if (m_imgImage == null) return;

if (ImageAnimator.CanAnimate(m_imgImage)) ImageAnimator.UpdateFrames(m_imgImage);

将图片设为动画开始给图 ??????? private void BeginAnimate() if (m_imgImage == null) return;

if (ImageAnimator.CanAnimate(m_imgImage)) ImageAnimator.Animate(m_imgImage, m_evthdlAnimator);

???? ?????? 关闭给图 ??????? private void StopAnimate() if (m_imgImage == null) return;

if (ImageAnimator.CanAnimate(m_imgImage)) ImageAnimator.StopAnimate(m_imgImage, m_evthdlAnimator);

??????? private void OnImageAnimate(Object sender, EventArgs e) this.Invalidate();

??????? private void Form1_FormClosed(object sender, FormClosedEventArgs e) if (m_imgImage != null) StopAnimate();

m_imgImage = null;

下载(注:源文件不在本站服务器,都将跳转到源网站下载)
备用下载
发帖评论
相关话题
发布一个新话题