关于在SVG中如何实现gif动画的问题?

  关于在SVG中如何实现gif动画的问题?
由于svg不支持动画,我做了个替代方法如下
step 1:先把多帧gif分成单帧并透明化
<image id="gif0" width=... xlink:href="data:image/gif;base64,... />
<image id="gif1" width=... xlink:href="data:image/gif;base64,... />
<image id="gif2" width=...xlink:href="data:image/gif;base64,...  />
<image id="gif3" width=... xlink:href="data:image/gif;base64,... />
..
step 2: 合成
<defs>
    <g id="animegif7" transform="translate(0,0) scale(1.0, 1.0)">
        <g>
                       <use xlink:href="#gif0"/><animate attributeName="visibility" values="visible;hidden;hidden;hidden;hidden;hidden;" keyTimes="0.0;0.5;1.0;1.5;2.0;2.5" dur="3.0s" repeatCount="indefinite"/>
        </g>
        <g>
                       <use xlink:href="#gif1"/><animate attributeName="visibility" values="hidden;visible;hidden;hidden;hidden;hidden;" keyTimes="0.0;0.5;1.0;1.5;2.0;2.5" dur="3.0s" repeatCount="indefinite"/>
        </g>
        <g>
                       <use xlink:href="#gif2"/><animate attributeName="visibility" values="hidden;hidden;visible;hidden;hidden;hidden;" keyTimes="0.0;0.5;1.0;1.5;2.0;2.5" dur="3.0s" repeatCount="indefinite"/>
        </g>
        <g>
                       <use xlink:href="#gif3"/><animate attributeName="visibility" values="hidden;hidden;hidden;visible;hidden;hidden;" keyTimes="0.0;0.5;1.0;1.5;2.0;2.5" dur="3.0s" repeatCount="indefinite"/>
        </g>
    </g>
</defs>
step 3: 使用动画
<use xlink:href="#animegif7"/>

转载于:https://www.cnblogs.com/frogbag/archive/2006/08/22/483140.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值