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

时间:2018-01-05 12:33:13

标签: android python kivy buildozer

我正在使用Kivy / Python开发一些简单的应用程序。我有一些问题,显示早先通过相机保存在Android存储中的图像。下面我发布了一个take_shot方法,拍摄照片并将其保存在android中的/ storage / emulated / 0 / Kalkulator / dir中。之后,图片的路径将存储在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没有显示任何分辨率更高的图像。

1 个答案:

答案 0 :(得分:0)

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

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

  • 尝试使用其他image provider (将KIVY_IMAGE设为pil)。

  • 尝试使用Pillow reduce image size

  • 报告项目github

  • 的问题
  • 在kivy用户支持google group

  • 中寻求帮助