五、在GDI+中绘制带动画效果的图片

private void Form2_Load(object sender, EventArgs e)

{

SetStyle(ControlStyles.DoubleBuffer, true);

SetStyle(ControlStyles.AllPaintingInWmPaint, true);

SetStyle(ControlStyles.UserPaint, true);

bmp = new Bitmap("1.gif");

ImageAnimator.Animate(bmp, new EventHandler(this.OnFrameChanged));

}

private void Form2_Paint(object sender, PaintEventArgs e)

{

ImageAnimator.UpdateFrames();

e.Graphics.DrawImage(this.bmp, new Point(0, 0));

}

private void OnFrameChanged(object o, EventArgs e)

{

this.Invalidate();

}

代码很简单:

我来解释一下关键的几个地方

SetStyle(ControlStyles.DoubleBuffer, true);

SetStyle(ControlStyles.AllPaintingInWmPaint, true);

SetStyle(ControlStyles.UserPaint, true);

使用二级缓冲,可以有效的防止图片闪烁

ImageAnimator:动画处理包含基于时间的帧的图像。

Animate  将多帧图像显示为动画。

CanAnimate  返回一个布尔值,该值指示指定图像是否包含基于时间的帧。

Finalize  允许 Object 在“垃圾回收”回收 Object 之前尝试释放资源并执行其他清理操作。 (继承自 Object。)

MemberwiseClone  创建当前 Object 的浅表副本。 (继承自 Object。)

StopAnimate  终止正在运行的动画。

UpdateFrames()使该帧在当前正被动画处理的所有图像中前移。新帧在下一次呈现图像时绘制。

UpdateFrames(Image)  使帧在指定的图像中前移。新帧在下一次呈现图像时绘制。此方法只适用于包含基于时间的帧的图像。

this.Invalidate();

Invalidate()使显示在设计图面上的控件的整个区域无效,并向控件设计器发送重新绘制控件的信号。(继承自 ControlDesigner。)

Invalidate(Rectangle)  使显示在设计图面上的控件的指定区域无效,并向控件设计器发送重新绘制控件的信号。(继承自 ControlDesigner。)

以上三个地方在使用动画效果是比较重要

转载于:https://www.cnblogs.com/kevin-top/archive/2010/06/22/1762666.html

GDI+入门(5、在GDI+中绘制带动画效果的图片)相关推荐

  1. 【python教程入门学习】用pyecharts绘制带动画效果的“时间轮播图

    今天我们要分享的是一个数据可视化的案例. 在讲述本文之前,为了满足大家的好奇心,我们先来看看最终做出来的效果呈现. 不管学习什么技术,官网是最好的老师.对于pyecharts绘图库,知道了他的绘图原理 ...

  2. 用Podofo绘制带透明度的png图片

    用Podofo绘制带透明度的png图片 前言: Podofo库是一个通用跨平台的开源c++类库,用于处理pdf文档,包括创建,修改,添加水印等功能. 不过因为其是开源项目,而且作者更新也比较慢.所以有 ...

  3. 我的Android进阶之旅------Android利用温度传感器实现带动画效果的电子温度计

    要想实现带动画效果的电子温度计,需要以下几个知识点: 1.温度传感器相关知识. 2.ScaleAnimation动画相关知识,来进行水印刻度的缩放效果. 3.android:layout_weight ...

  4. Android高效率实现弹出带动画效果的对话框,仿照微信对话框效果

    转载请注明出处: http://blog.csdn.net/jakeyangchina/article/details/53423453 看到很多app页面里都有弹出对话框效果,今天使用PopupWi ...

  5. html5制作天气动画背景,CSS icon图标之纯CSS实现带动画效果的天气图标

    CSS3动画属性并不是很多,但重点其实是你怎样去运用它,从简单的hover状态或复杂的小动画,都可以巧妙的用CSS3动画属性来实现. 今天主要是和大家分享一个比较有创意.实用的CSS天气图标动画,静态 ...

  6. css3+jQuery制作导航菜单(带动画效果)

    <!DOCTYPE html> <html><head><meta charset="UTF-8"><title>css ...

  7. android中设置Animation 动画效果

    在 Android 中, Animation 动画效果的实现可以通过两种方式进行实现,一种是 tweened animation 渐变动画,另一种是 frame by frame animation ...

  8. (带动画效果)卷积神经网络的讲解.pptx

    这学期我上的另一门课是本科生的<深度学习>,主要用的是吴恩达老师的<深度学习>视频课的内容. 使用教材:吴恩达<深度学习>课程笔记 课外参考书:<深度学习&g ...

  9. jQuery中的渐变动画效果

    jQuery中的渐变动画效果jQuery中的渐变动画效果 转载于:https://www.cnblogs.com/DreamDrive/p/5780292.html

最新文章

  1. Android之创建简单的ProgressDialog
  2. HDU2016 数据的交换输出
  3. SpringBoot常见功能特性分析
  4. 另类vs2015+xamarin 的android界面乱码 解决
  5. qt文件选择控件_Qt编写的项目作品2-控件属性设计器(组态)
  6. Fiori Elements value help selection pass back
  7. Android 使用Picasso加载网络图片等比例缩放
  8. PBRT中的误差舍入管理(浮点运算)
  9. 中式国风地产创意海报素材模板
  10. 20个很有帮助的 Web 前端开发教程
  11. 修改linux系统时间的方法(date命令)
  12. ios获取区域服务器信息,ios获取服务器数据
  13. Sqlalchemy 乱码解决方法
  14. android mapstring, string遍历,MapString, String 遍历的四种方法
  15. Vue3使用echarts教程
  16. 有限元分析能具体做什么?
  17. yar php使用,PHP yar的使用简介
  18. 计算机网络-自顶向下笔记-可靠数据传输原理(三种rdt)
  19. 怎么安装java_怎么安装打印机到电脑步骤
  20. 【观察】“专精特新”数智化国产替代,为何首选用友U9cloud?

热门文章

  1. 华为鸿蒙全程,华为2020年全线启用鸿蒙系统
  2. python 计算器 tkinter_python -Tkinter 实现一个小计算器功能
  3. 数据:以太坊2.0合约余额新增2944 ETH
  4. 因限制游戏驿站等WSB概念股交易 Robinhood遭散户集体诉讼
  5. 湖南省区块链协会成立
  6. SAP License:ERP咨询顾问之路
  7. 投资大佬都在看的一张报表
  8. 智能车学习(八)——菜单的实现
  9. [转帖]三大运营商2G/3G/4G频率分配和网络制式
  10. Servlet JSP和Spring MVC初学指南 PDF