关于png动画的问题
2014-11-01 18:36
155 查看
不知道其他家的动画是怎么弄的,我反正费了不少劲才让动画流畅起来,虽然还有一些问题。
前提:流畅,支持半透明。
程序中加载动画到目前为止我知道两种方式gif和png序列。
1,首先是gif,动画不流畅,很耗资源,不支持半透明(要么透要么不透),锯齿感太强烈
2,png序列,每一帧动画都是一张png图片,
两种加载方式,一种是全部加载,问题来了,耗内存,不是一般的耗,最多加载到200张,内存就1个多G了,然后程序挂掉
第二种是部分加载,有点像播放器,边播边加载,还好,以前写过播放器,开了两个线程,一个读图片一个控制刷新。
问题来了,当我想在两个地方播放同一段动画的时候,程序崩溃了。原因是多个线程读同一个文件,起了冲突。QFile里面挂了。 这里还隐藏着一个问题,如果我开启了多个窗口播放动画,每秒25帧,三个动画就是每秒75帧,每秒要读完75个文件,对硬盘的表示很担心。
想到了引用计数,只用一个线程读文件,这样,三个窗口的动画就同步了。问题解决了大部分。
还没解决的是 1920*1080图片加载真的很慢,debug模式下跑的很不顺畅,只能在release下了。
我的是四核,超过25%就说明一个核满了。
分辨率 刷新间隔 cpu占用率 文件大小
480*520 40ms 4% 12kb
480*520 100ms 2% 12kb
1080*1920 40ms 22% 10kb
1080*1920 100ms 11% 10kb
1080*1920 40ms 27% 255kb //慢,刷新时间不对
1080*900 40ms 13% 130kb
前提:流畅,支持半透明。
程序中加载动画到目前为止我知道两种方式gif和png序列。
1,首先是gif,动画不流畅,很耗资源,不支持半透明(要么透要么不透),锯齿感太强烈
2,png序列,每一帧动画都是一张png图片,
两种加载方式,一种是全部加载,问题来了,耗内存,不是一般的耗,最多加载到200张,内存就1个多G了,然后程序挂掉
第二种是部分加载,有点像播放器,边播边加载,还好,以前写过播放器,开了两个线程,一个读图片一个控制刷新。
问题来了,当我想在两个地方播放同一段动画的时候,程序崩溃了。原因是多个线程读同一个文件,起了冲突。QFile里面挂了。 这里还隐藏着一个问题,如果我开启了多个窗口播放动画,每秒25帧,三个动画就是每秒75帧,每秒要读完75个文件,对硬盘的表示很担心。
想到了引用计数,只用一个线程读文件,这样,三个窗口的动画就同步了。问题解决了大部分。
还没解决的是 1920*1080图片加载真的很慢,debug模式下跑的很不顺畅,只能在release下了。
我的是四核,超过25%就说明一个核满了。
分辨率 刷新间隔 cpu占用率 文件大小
480*520 40ms 4% 12kb
480*520 100ms 2% 12kb
1080*1920 40ms 22% 10kb
1080*1920 100ms 11% 10kb
1080*1920 40ms 27% 255kb //慢,刷新时间不对
1080*900 40ms 13% 130kb
相关文章推荐
- Cocos-2d 关于多个CCSprite精灵播放同一个CCAction动画问题
- 显示 jpg、png、gif 图片及 gif 动画 - 回复 "格兰特" 的问题
- 关于Cocos2d-x中获取正在播放动画第几帧的问题
- 关于android frame动画的问题
- 关于UIView重复动画效果的问题
- 关于旋转动画只能画少一个pai 的问题
- cocos2d-x tips(二)关于cocosbuilder中的动画和2dx的action同时正常运行的问题
- Opencv关于PNG图像的load和save问题
- 关于界面切换,动画效果问题
- 关于如何在MFC内实现雪花动画的几个问题
- 关于Doxygen中的中文乱码问题 及 无法用dot生成png图像问题
- [转]关于flash中图片(jpg\png\gif)旋转后锯齿(模糊)问题
- 关于SlidingMenu的引发的原生动画不流畅的问题
- Android移动view动画问题 关于view的位置移动了,但view里面绑定的监听器还在原位
- 关于骨骼动画max数据导出到dx中一些问题总结
- 关于DreamWaver制作的网页无法播放背景音乐和动画的问题
- 关于IE6中PNG透明图片的问题
- 关于VB6中代码显示PNG图片的问题
- 关于android 动画坐标百分比问题!
- 关于cocos2d-x2.2.0永动型帧动画上遇到的一点问题