silverlight中"制作逐帧动画"/"播放gif"收集
“逐帧动画”与“播放GIF”貌似二个风马牛不相干的问题,其实不然!
因为silverlight中的image控件不支持直接把gif动画做为source,所以象做动画常用的"走路的小人","加载loading小动画"...这类经典gif素材,无法直接使用,只能转化为逐帧动画来处理。
nasa(silverlight MVP)给出于二种经典的办法:
1.类似老式电影放胶片的原理,用storyboard机制实现
原文:https://cloud.tencent.com/developer/article/1021058
将gif中的素材用photoshop,fireworks之类的工具把各层提取出来,拼接成一张图,然后拿一个矩形做为蒙版,图片每隔一定时间向左移动一定位置即可。
示意图(颇有css中背景定位的意思):
2.用ImageBrush定时填充指定矩形
原文:https://cloud.tencent.com/developer/article/1020644
同样将各帧素材先准备好,用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
- 一个非常好用的文字滚动的案例,鼠标悬浮可暂停
- localstorage和sessionstorage上手使用记录
- jquery升级到新版本报错[jQuery] Cannot read property ‘msie’ of undefined错误的解决方法(转)
- thinphp框架的项目svn重新检出后的必备配置
- 对事件委托绑定click的事件的解绑
- 免杀后门之MSF&Veil-Evasion的完美结合
- 【52ABP实战教程】0.3-- 从GitHub推送代码回VSTS实现双向同步
- css绝对定位如何在不同分辨率下的电脑正常显示定位位置?
- nvm安装node和npm,个人踩坑记录
- clang_intprt_t类型探究
- 学习zepto.js(Hello World)
- JS中函数声明与函数表达式的异同
- [技巧]看我如何通过Weeman+Ettercap拿下路由器管理权限
- 一分钟理清Vue-cli 代码构建步骤。
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 一口气搞懂「文件系统」,就靠这 25 张图了
- Oracle ASM 环境增加控制文件
- 利用注解进行 Spring 开发
- 40张图揭秘,「键入网址发生了什么」
- Spring 代理模式知多少
- 一条SQL引发的“血案”:与SQL优化相关的4个案例
- Mycat分库分表全解析 Part 3 Mycat的安装
- Oracle非图形化界面创建数据库
- Mycat分库分表全解析 Part 5 Mycat 分片规则介绍
- PHP 命名空间与类自动加载实现
- mysqldump命令详解 Part 3-备份单表
- mysqldump命令详解 Part 7- -single-transaction 参数的使用
- 基于 Symfony 组件封装 HTTP 请求响应类
- 通过 PHP 原生代码实现 HTTP 路由器
- MySQL组复制(MGR)全解析 Part 10 MGR新增节点