Windows Mobile C#实现GIF图片播放
2010-10-20 08:01:38 来源:WEB开发网核心提示:总结了四种方式:1. 使用WebBrowser控件2. 使用微软为Wince补充的AnimationControl控件3. 使用网络上流传的ImageCtrl.dll4. 仿照Win32代码用C#解码GIF播放1.使用WebBrowser控件webBrowser = newSystem.Windows.Forms.We
总结了四种方式:
1. 使用WebBrowser控件
2. 使用微软为Wince补充的AnimationControl控件
3. 使用网络上流传的ImageCtrl.dll
4. 仿照Win32代码用C#解码GIF播放
1.使用WebBrowser控件
webBrowser = newSystem.Windows.Forms.WebBrowser();
webBrowser.Url =new System.Uri("gif文件");
由于WebBrowser控件会响应很多消息,例如长按消息弹出菜单,所以在界面制作上是有缺陷的。
2.使用微软为Wince补充的AnimationControl控件
下载安装AnimationControl.msi 里面有示例。
3.使用网络上流传的ImageCtrl.dll
这个也是在Form上创建一个自己实现的ImageCtrl控件,然后在控件上显示gif图片,这个控件倒是没有响应消息的缺陷,但是对GIF图片的可控性不好。
4.仿照Win32代码用C#解码GIF播放
解码GIF有两种方式:
1>使用gif89a (这种方式不够完美,有缺陷)
2>使用IImage Com接口
在C#中如何使用IImage,网络上有一个AlphaExample源码,里面导出了部分IImagingFactory接口,但是解码GIF的接口并没有全部导出。OpenNETCF是可以完全使用IImage接口的。但是在解码GIF过程中要使用的一些对象还是无法得到,所以最终放弃这种方式。
我最后采用的方式是使用我用Win32写好的C++代码导出DLL,在C#中使用DLL接口来播放GIF。
调用过程中遇到一些问题,比如:形参的排放顺序会影响实参的传递,指针参数需要使用ref声明,等等。
赞助商链接