.gif 图像作为源代码在 Windows kivy 程序中运行良好。通过 kivy Launcher 运行显示 gif 图像的背景
Posted
技术标签:
【中文标题】.gif 图像作为源代码在 Windows kivy 程序中运行良好。通过 kivy Launcher 运行显示 gif 图像的背景【英文标题】:.gif Image as source runs nicely in Windows kivy program . Running via kivy Launcher shows background of gif image 【发布时间】:2014-05-28 03:32:27 【问题描述】:我正在运行一个程序,我在小部件中显示 .gif 图像,它运行良好但是当我使用 kivy 启动器运行这个应用程序时,即使图像没有背景,.gif 图像也会带有一个方形框.
任何人都有任何想法,为什么这在 android 和 windows 上表现不同。
请参阅下面的 .kv 代码作为我如何使用 .gif 图像的示例。我将此 .gif 图像用作按钮。
<ButImage@ButtonBehavior+AsyncImage>
canvas.before:
Color:
rgb: (0, 0, 1)
PushMatrix
Rotate:
axis: 0,0,1
angle: 20
origin: self.center
source: "images/butterflybluex.gif"
canvas.after:
PopMatrix
...
【问题讨论】:
【参考方案1】:首先确保你打包了 pil/pillow [只是在构建 apk 时将其添加到其中一个要求中] 用于 gif 加载,否则将使用一个对于 android 非常慢的纯 python 加载器,其次请详细说明你的方框是什么意思?
更新:您更新后的示例显示您正在使用 AsyncImage 和本地源,Async Image 被用于与本地源的远程 url 一起使用,您可以使用 Image
类。
第二:如果你得到的是白色背景而不是图像,那么你给了它错误的路径。确保您的图像存在于目录中,或者您的目录存在于启动器的正确位置。
更新 3:如前所述,问题在于使用 pil 的 gif 图像加载器。并非所有图像都可以使用它。它适用于您的桌面,因为没有安装 pil,而是使用纯 python gif 加载器。由于速度问题,此加载程序无法在 android 上使用。
一种解决方法是使用 gimp 打开并保存图像。那么它应该可以正常工作。 另一种方法是贡献和修复:使用 pil 用于 gif 的加载器......(我必须警告网络上有很多不同的 gif,每个都有自己的细微变化。确保一个作品会导致其他作品被破坏。)
要在桌面上重现您的问题,只需安装枕头。
使用 gif 制作动画时可能会出现许多伪影,我建议您在 .zip
中使用 images(png/jpg...) 并将其设置为源。这样您就可以摆脱伪影了。
请确保 Image 类提供的 gif 或 .zip 动画仅用于不需要大量控制动画的情况。就像不会改变的静态动画一样。
如果您的动画需要超出此范围,那么您应该通过在 Atlas 中加载精灵表来手动管理动画。
【讨论】:
1.我目前正在使用 kivy 启动器 2 运行代码。方形框是指图像的背景,默认情况下,每个图像都是方形的,我们通常会删除背景,以便不显示图像背景框。如果不清楚我将尝试进一步详细说明。 3. 我首先在按钮中使用此动画(请参阅我刚刚在我的问题中添加的 .kv 代码) 背景是指包含任何图像的图像+背景正方形(默认情况下,每个图像都包含在一个正方形框中)。路径完全正确 基本上我需要图像具有透明背景。 Windows 上的相同代码显示具有透明背景的图像,但在具有 kivy 启动器的 android 上显示具有闪烁背景的图像 啊,这就是 gif 解码器的问题。网络上有很多种类的 gif,而 gif 解码器并不适用于所有类型。我建议您在 .zip 中使用图像列表...jpg/png。但是,如果它可以在您的桌面上运行而不是在您的手机上运行,那么还有其他问题。确保您使用的是最新版本的 kivy 启动器。 是的,它可以在我的桌面上完美运行,但不能在移动设备上运行 :) ...我正在使用 kivy 启动器,它已更新为可与最新的 1.8.0 一起使用,并且是最新的。当你说压缩包中的图片时,我真的不知道如何为那个 gif 找到相同的 png ...【参考方案2】:我知道这个响应有点延迟,但我最近遇到了这些问题,并决定更改对绝对路径文件的访问。
原因是 Android/ios 路径管理器与桌面不同。在桌面上,我们可以使用相对路径为我们获取当前路径和图片文件的路径,但是在android/Ios上,我们应该使用绝对路径 > 找到我们的图像或我们想要使用的任何文件的路径。
Path to files in kivy app not valid after building with buildozer
【讨论】:
以上是关于.gif 图像作为源代码在 Windows kivy 程序中运行良好。通过 kivy Launcher 运行显示 gif 图像的背景的主要内容,如果未能解决你的问题,请参考以下文章