寻找一种使用Python Kivy绘制图像一部分的方法

时间:2019-04-28 20:10:34

标签: python kivy

我正在将Kivy与Python3结合使用,并希望绘制一个PNG图像,但仅基于值绘制图像的一部分。例如,如果我的范围是[0,100]且值为50。我想绘制50%的图像。

当前,我使用kivy.graphics.Rectangle绘制一个以PNG图像作为源属性的矩形。然后根据输入的值(在本例中为50)更新矩形的大小。

此解决方案仅拉伸和压缩图像,但始终绘制整个图像。我宁愿保持大小不变​​,而实际显示的图像百分比是动态成分。

我一直在寻找实现此目标的方法,但尚未找到任何线索。由于我有背景,因此我不能仅在绘制的图像上放置一个白色矩形并更改其大小以将完整绘制的图像隐藏在其后面,所以这变得更加复杂了。

对此将提供任何帮助。

1 个答案:

答案 0 :(得分:0)

我使用与此类似的代码来限制显示的图像:

canvas:
    # Draw our stencil
    StencilPush
    Rectangle:
        pos: self.x, root.center_y - self.height / 1.5
        size: self.update, 1000
    StencilUse

    # Now we want to draw our image and then crop it
    Rectangle:
        size: self.width, self.height + self.height / 2
        pos: self.x, root.center_y - self.height / 1.5
        source: self.source
    StencilUnUse

    # Redraw our stencil
    Rectangle:
        pos: self.x, root.center_y - self.height / 1.5
        size: self.update, 10000 # Note height was not a concern here
    StencilPop