加快加载动画 gif kivy

Posted

技术标签:

【中文标题】加快加载动画 gif kivy【英文标题】:speed up loading of animated gif kivy 【发布时间】:2016-02-21 00:37:37 【问题描述】:

有没有办法加快 kivy 加载动画 gif 的速度? kivy 是否有任何内置方法,例如压缩或其他选项?我正在做的是使用动画 gif 作为我的应用程序主屏幕的背景。它是矩阵,它有大约 30 个不同的帧来创建所需的效果。30 帧我不希望这会非常快,但是加载单个动画 gif 的 5-10 秒似乎有点多。

【问题讨论】:

Kivy 支持对 .zip 文件中的一系列图像进行动画处理 - 我认为部分原因是它在不同平台上得到了更好的支持(并且可能更快)。你可以试试这个。 我认为在 Kivy 示例文件夹中有一个使用 zip 文件的示例。请参阅here,对于 kv 文件,请参阅 here。 【参考方案1】:

我相信这可能会对你有所帮助,我有一系列 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 增强纹理。

【讨论】:

以上是关于加快加载动画 gif kivy的主要内容,如果未能解决你的问题,请参考以下文章

Android加载Gif动画

阻止加载动画 Gif

在 Kivy 中构建简单的进度条或加载动画?

停止加载 gif 动画,鼠标悬停开始激活

如何在页面加载时显示 ajax 加载 gif 动画?

重新启动 gif 动画而不重新加载文件