在 Kivy 中显示来自 android 存储的图像时出现黑色方块

Black square when displaying an Image from android storage in Kivy

我正在使用 Kivy/Python 开发一些简单的应用程序。我在显示之前通过相机保存在 android 存储中的图像时遇到了一些问题。下面我发布了一个take_shot的方法,拍照保存在android中的/storage/emulated/0/Kalkulator/目录下。之后图片的路径将存储在sqlite数据库中。

def take_shot(self,name,when):
    if kiedy == 'before':
        self.before='/storage/emulated/0/Kalkulator/'+name+when+'.jpg'
        camera.take_picture(self.before,self.done(when))  
    elif kiedy == 'after':
        self.after = '/storage/emulated/0/Kalkulator/' + name + when+'.jpg'
        camera.take_picture(self.after, self.done(when))

下面的代码提供了用于读取 data 从数据库获取的文件的方法。当我尝试显示 android 存储中的文件时,kivy 只显示黑色方块。当我尝试显示应用程序目录 './files/photos/irina.jpg' 中的图像时,一切正常。

    if str(data[5])=='Empty':
        before=Image(source='./files/photos/irina.jpg', 
              keep_ratio=True,size_hint= (1,None),height=dp(400))
    else:
        before = Image(source=str(dane[5]), keep_ratio=True,size_hint= 
                     (1,None),height=dp(400))
    if str(data[6]) == 'Empty':
        after = Image(source='./files/photos/irina.jpg', 
                   keep_ratio=True,size_hint= (1,None),height=dp(400))
    else:
        after = Image(source=str(dane[6]), keep_ratio=True,size_hint= 
                   (1,None),height=dp(400))
    photos.add_widget(before)
    photos.add_widget(after)
    self.ids.box.add_widget(photos)

问题出在哪里?我在日志中没有任何错误。

我看到 kivy 不显示任何更高分辨率的图像。

如果你确定是关于图片大小,我想你可以做的事情:

  • 尝试使用kivy master分支(在buildozer的要求中使用kivy==master)来构建apk:bug可能会被修复

  • 尝试使用另一个image provider (将 KIVY_IMAGE 设置为 pil)。

  • 尝试 reduce image size 使用 Pillow。

  • 报告项目 github

  • 的问题
  • 在kivy用户支持中寻求帮助google group