silverlight中"制作逐帧动画"/"播放gif"收集

“逐帧动画”与“播放GIF”貌似二个风马牛不相干的问题,其实不然!

因为silverlight中的image控件不支持直接把gif动画做为source,所以象做动画常用的"走路的小人","加载loading小动画"...这类经典gif素材,无法直接使用,只能转化为逐帧动画来处理。 

nasa(silverlight MVP)给出于二种经典的办法: 

1.类似老式电影放胶片的原理,用storyboard机制实现

原文:http://www.cnblogs.com/nasa/archive/2008/03/24/1119771.html

将gif中的素材用photoshop,fireworks之类的工具把各层提取出来,拼接成一张图,然后拿一个矩形做为蒙版,图片每隔一定时间向左移动一定位置即可。

示意图(颇有css中背景定位的意思):

 

2.用ImageBrush定时填充指定矩形

原文:http://www.cnblogs.com/nasa/archive/2009/09/11/imageBrush-Animate.html

同样将各帧素材先准备好,用timer定时按顺序切换矩形的imageBrush

 

3.跟2中所提到的方法原理差不多,定时更换Image的source属性

出自 http://www.cnblogs.com/024hi/archive/2009/09/14/1566653.html

这里用到了园子里另一位mvp jillzhang开源gif处理库,借助这个工具类,将gif各帧取出形成一个WriteableBitmap数组,然后用timer定时按顺序取出该数组元素做为image的source轮换

不错的在线示例 http://joestegman.members.winisp.net/SL3/GIFDecoderSample/Default.html

 

 

 

时间: 2024-12-29 12:06:13

silverlight中"制作逐帧动画"/"播放gif"收集的相关文章

Silverlight制作逐帧动画 v2 - part1

Silverlight制作逐帧动画 v2 - part1   在silverlight 2的时候我写过一篇<Silverlight制作逐帧动画>,这个是采用storyboard的原理来做的.现在到了silverlight 3最近又想到一个动态将Rectangle的Fill属性设置为动画每一帧的图形.完全用代码的形式来实现动画. 这里先放出一个原型.   首先准备好素材,我准备做一个4帧的飞机小动画.这个比之前采用storyboard做动画的好处是不用对坐标(一张长的图片做起来太累了). 这个飞

Silverlight制作逐帧动画 v2 - part3

Silverlight制作逐帧动画 v2 - part3 总结之前写的两篇 Silverlight制作逐帧动画 v2 - part1 Silverlight制作逐帧动画 v2 - part2 这里把代码归纳整理,做了一些封装,动画全部的又代码进行创建,脱离了Blend这个工具.这样对于做游戏时在动画的控制管理方面会更加的方便一些. 整个项目结构如下,关键的代码封装到了Core下 创建动画的方式就很简单了,可以再做一个管理类,我这里就简单的加一个 源文件下载:

Silverlight制作逐帧动画 v2 - part2

Silverlight制作逐帧动画 v2 - part2 接上一篇<Silverlight制作逐帧动画 v2 - part1>,在这里完善了一下算法,加入了fps的机制进去.         private string[] shippics = new string[] { "Ship1/1.png", "Ship1/2.png", "Ship1/3.png", "Ship1/4.png" };        p

Flash动画制作技巧之如何掌握逐帧动画

flash动画|技巧 问题:逐帧动画与移动渐变动画,形状渐变动画有什么区别? 解决思路 在本例中详细地解释了逐帧动画的特点和与其他形式动画的区别.逐帧动画,顾名思义就是把运动过程附加在每个帧中,当影格快速移动的时候,利用人的视觉的残留现象,形成流畅的动画效果. 具体步骤 1.运行Flash MX 2004,文档属性默认. 2.单击第1帧,利用椭圆形工具在舞台的左侧画一个红颜色无边框的圆. 3.单击第1帧,按快捷键"F6"键,连续在时间轴上插入10个关键帧.如图2.1.51所示. 图2.

flash8.0逐帧动画详解及实例

从本单元起,我们将逐渐给大家介绍Flash8.0中的五种常见的动画形式:逐帧动画.形状补间动画.动作补间动画.遮罩动画.引导线动画. 本节着重介绍逐帧动画(FrameBy Frame),这是一种常见的动画手法,它的原理是在"连续的关键帧"中分解动画动作,也就是每一帧中的内容不同,连续播放而成动画. 由于逐帧动画的帧序列内容不一样,不仅增加制作负担而且最终输出的文件量也很大,但它的优势也很明显:因为它相似与电影播放模式,很适合于表演很细腻的动画,如3D效果.人物或动物急剧转身等等效果.

Fireworks制作图片变换效果逐帧动画

细节性的动画在FW里还是使用逐帧动画调节起来比较细腻,虽然使用动画元件比较快,但是我还是比较喜欢一帧一帧的调,做了几个图片变换过渡的效果: ① 逐帧动画: PNG文件: ② 逐帧+蒙板: PNG文件: ③ 逐帧+不透明度做的图片过渡: PNG文件: ④ 逐帧+灰度蒙板做的图片过渡: PNG文件:

Android动画之逐帧动画(Frame Animation)基础学习_Android

前言 在Android中,动画Animation的实现有两种方式:Tween Animation(补间动画)和Frame Animation(帧动画).渐变动画是通过对场景里的对象不断做图像变换(平移.缩放.旋转等)产生动画效果.帧动画则是通过顺序播放事先准备好的图像来产生动画效果,和电影类似. 下面我们就来学习下Android中逐帧动画的基础知识. 原理 : 人眼的"视觉暂留" 方式 :      1.在java代码中 ( new AnimationDrawable().addFra

Android学习之逐帧动画

动画分为逐帧动画(Frame).补间动画(Tween) 和属性动画. 1.逐帧动画 通常采用XML资源文件进行定义,如下: android:oneshot 设置是否循环播放动画,false为循环播放为默认的设置,xml文件定义帧动画资源,在程序中用一个ImageView就可以显示该动画了. 需要指出的是AnimationDrawable代表的动画默认是不播放的,需要在程序中启动,调用start() 和 stop() . <?xml version="1.0" encoding=&

Android动画之逐帧动画(Frame Animation)基础学习

前言 在Android中,动画Animation的实现有两种方式:Tween Animation(补间动画)和Frame Animation(帧动画).渐变动画是通过对场景里的对象不断做图像变换(平移.缩放.旋转等)产生动画效果.帧动画则是通过顺序播放事先准备好的图像来产生动画效果,和电影类似. 下面我们就来学习下Android中逐帧动画的基础知识. 原理 : 人眼的"视觉暂留" 方式 : 1.在java代码中 ( new AnimationDrawable().addFrame(ge