首页 > 解决方案 > Kivy:长图未显示

问题描述

我有一个非常基本的程序用于测试目的。这是Python代码:

class TestImage(BoxLayout):
    pass

class TestApp(App):
    def build(self):
        return TestImage()

if __name__ == "__main__":
    TestApp().run()

这是kv代码。

<TestImage>:
    orientation: 'vertical'
    Image:
        id: bg_img
        keep_ratio: True
        allow_stretch: True
        size_hint_y: None
        height: Window.height
        source: 'template.jpg'

这是有问题的图像: 模板.jpg

这只是基本图像,目标是滚动浏览这个长图像。但出于测试目的,我使用了一个简单的 boxlayout。其他图像工作正常。但是这个特定的图像没有。此图像是使用 numpy 和 opencv 使用以下代码片段生成的:

import numpy as np
import cv2 as cv
test_img = np.full((11400, 2550, 3), 255, np.uint8)
cv.imwrite('template.jpg', test_img)

Kivy 只显示黑屏。我怎样才能设法显示这个图像?我尝试过的事情:

  1. 将图像转换为其他格式(png/tiff)仍然不起作用
  2. 操作 kv 文件中的大小。

标签: python-3.xnumpyopencvkivy

解决方案


显然,我超出了控制台日志中指出的能够呈现的最大大小:

[INFO] [GL ] Texture max size 8192.

就我而言,它是 8192。除此之外,kivy 显示黑屏。解决方案是以这样一种方式将图像切碎/调整大小,以使其在限制范围内形成合理的大小


推荐阅读