浅析C#调用ImageAnimator
来源:互联网 发布:网络布线工程报价单 编辑:程序博客网 时间:2024/05/18 00:58
最近在做一个图片查看器,由于使用一般的PctureBox,在性能和缩放控制上都无法满足预期的要求,因此所有组件的呈现均是通过重写控件的 OnPaint事件来绘制。在查看gif图片时发现Graphics.DrawImage只呈现第一帧,无法满足预期要求,因此经过摸索寻找到了解决自绘 gif的较好办法。
这里介绍一个.net自身携带的类ImageAnimator,这个类类似于控制动画的时间轴,C#调用ImageAnimator.CanAnimate可以判断一个图片是否为动画,C#调用ImageAnimator.Animate可以开始播放动画,即每经过一帧的时间触发一次OnFrameChanged委托,我们只要在该委托中将Image的活动帧选至下一帧再迫使界面重绘就可以实现动画效果了。
为了方便以后的使用,我将这些代码整合到了一起,形成一个AnimateImage类,该类提供了CanAnimate、FrameCount、CurrentFrame等属性,以及Play()、Stop()、Reset()等动画常用的方法,代码如下
- usingSystem;
- usingSystem.Collections.Generic;
- usingSystem.Text;
- usingSystem.Drawing;
- usingSystem.Drawing.Imaging;
- namespaceGifTest
- {
- /**////
- ///表示一类带动画功能的图像。
- ///
- publicclassAnimateImage
以上介绍C#调用ImageAnimator类。
- 浅析C#调用ImageAnimator
- C# ImageAnimator 绘制GIF偶尔红叉
- C# 跨线程调用TextBox方法浅析
- C# 跨线程调用TextBox方法浅析
- C# WebService发布与调用浅析
- 浅析C#调用WebService实例和开发
- 浅析函数调用过程
- Linux系统调用浅析
- C++调用Python浅析
- 浅析Linux系统调用
- C++调用python浅析
- C++调用Python浅析
- linux 系统调用浅析
- 浅析 Linux 系统调用
- 浅析函数调用栈
- 浅析函数调用栈
- C++调用Python浅析
- 浅析“远程对象调用”
- 查找指定文件中特定字符串赋值
- Object-c的内存
- 如何在iis中设置站点的编码格式。
- Ofbiz 入门教程
- 获取主机名和IP
- 浅析C#调用ImageAnimator
- 全球Landsat陆地卫星影像拼接产品使用说明
- IOS开发:UIAlertView设置文字左对齐
- HDU 动态规划(46道题目)倾情奉献~ 【只提供思路与状态转移方程】
- 快速排序(Quicksort)的Javascript实现
- vs2010调试错误问题
- jQuery中ajax和post处理json的不同
- 图片放大缩小并且文字与图片相对位置不变
- 关于libsvm的使用问题