• 9069阅读
  • 2回复

如何获得gif的每一帧图片并把它提取出来? [复制链接]

上一主题 下一主题
离线蛮蛮
 
只看楼主 倒序阅读 楼主  发表于: 2008-12-26
— 本帖被 XChinux 执行加亮操作(2009-01-03) —
1。如何获得gif的每一帧图片并把它提取出来?
qmovie的nextframe不成。
看了下qmovie类,它里面也是用了qimagereader,但我试了也没成功。
至于qmovie里的play里的next函数看了看,似乎也没看大懂。
论坛里也没有相关的解决方案。
2。再一个问题:wav放进资源里就使用不了,qsound.play是怎么回事?
3。qgraphicsscene使用时,怎样可以控制qgraphicsitem的位置而不影响效率?我使用qlist存储qgraphicsitem的指针,并另开一线程,在run里让qgraphicsitem moveby,这个线程由定时器start,但现在当我在主线程里操作除子线程需要移动位置的之外的其它graphicsitem时出再现崩溃现象。不知道这样的问题如何解决。
4。第一次使用qgragphics,不知道怎样可以让方向键的事件进入到主窗体的keyPressEvent,好像graphicsview把这几个事件截了。

望不吝赐教。
[ 此贴被蛮蛮在2008-12-26 08:58重新编辑 ]
蛮蛮工作室
离线water_wf

只看该作者 1楼 发表于: 2008-12-26
1。如何获得gif的每一帧图片并把它提取出来?
currentFrameNumber() currentImage()
2。再一个问题:wav放进资源里就使用不了,qsound.play是怎么回事?
资源文件一般是图片什么的,进行转换的,不能用什么意思?play当然是开始播放了
3。 qgraphicsscene使用时,怎样可以控制qgraphicsitem的位置而不影响效率?
控制位置?按照你的思路,直接同定时器即可,为什么还要用线程呢?
4。第一次使用qgragphics,不知道怎样可以让方向键的事件进入到主窗体的keyPressEvent,好像graphicsview把这几个事件截了。
看看accept(ture/false)
离线蛮蛮
只看该作者 2楼 发表于: 2008-12-29
首先谢谢回帖和耐心的回答。
1。currentImage似乎是不行的。问题没有解决,最终还是利用shotoshop把gif中的图片提取了出来。
2。问题已找到。是因为wav目前不被支持为资源模式。qsond不能播放资源里的wav。
下面是Qt助手上面的注释:
Note that QSound does not support resources. This might be fixed in a future Qt version.(参见qsound)
另外,qsound存在一个问题,就是利用播放声音时,它只能同时播放一个声音文件,如果同时播放多个声音文件,它会停止前一个声音文件的播放。看了下源代码,qsound里是利用一个静态的函数来完成对声音的控制的,有兴趣的人可以自己看看。也就是说,在同一个进程里,不论存在多少个qsound,最终播放声音都是利用的同一个静态函数。如果想使用qsound同时播放多个声音文件,必须让它们在两个进程中进行。多个线程是不好使的。
其它的方法没有试。看样子phono里的VideoPlayer似乎也能用。但具体情形就不得而知了。
3。好像可以通过QGraphicsItemAnimation来解决下。
4。问题解决。设置主窗体或子窗体的focusPolicy属性值。把子窗体设置为Qt::NoFocus即可。
蛮蛮工作室
快速回复
限100 字节
 
上一个 下一个