在 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
我正在使用 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