加快Kivy动态GIF加载速度

6

有没有办法加快kivy加载动态gif的速度?Kivy是否有内置的压缩或其他选项?我正在将动态gif用作应用程序主屏幕的背景。这是矩阵,其中有大约30个不同的帧来创建所需的效果。由于有30个帧,我并不指望它非常快,但是单个动态gif加载需要5-10秒似乎有点太长了。


Kivy支持在.zip文件中动画一系列图像,我认为部分原因是这在不同平台上得到更好的支持(也许更快)。你可以尝试使用这种方法。 - inclement
我认为在Kivy示例文件夹中有使用zip文件的示例。请参见此处,以及kv文件,请参见此处 - elParaguayo
2个回答

8

我相信这会对你有所帮助,我有一系列的png文件,想把它们制作成爆炸效果,并在不断发生爆炸的游戏中使用。最初,每次播放动画时,游戏都会卡顿和出现明显的延迟。以下是我为了让我的游戏运行流畅所采取的措施。我将png文件压缩,并使用以下代码进行预加载,这些代码我放置在图像所在的Screen小部件的__init__方法中。

load_zipped_png_files = Image(
    source = 'explosion.zip', 
    anim_delay = 0,
    allow_stretch = True, 
    keep_ratio = False,
    keep_data = True)

我认为 keep_data 选项允许将图片预加载到缓存中(我想是缓存在本地),这样可以避免程序在每次使用它们时重新加载。

现在可能我对于 keep_data 在这里的作用有所误解(如果有人读到这篇文章并知道更好的,请纠正我),但通过将文件压缩并以这种方式使用,确实使动画变得流畅。你可以测试一下是否启用了 keep_data = True 并自行找出答案。


2

对于我而言,这很简单,因为我需要GIF格式的图片扩展:

Image(
source= 'image.gif', 
anim_delay= 0,
mipmap= True,
allow_stretch= True)

新增了mipmap,使用OpenGL增强纹理效果。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接