Ищете способ рисовать часть изображения с помощью Python Kivy - PullRequest
0 голосов
/ 28 апреля 2019

Я использую Kivy с Python3 и хочу нарисовать изображение в формате PNG, но только часть изображения на основе значения. Например, если у меня есть диапазон между [0, 100] и значением 50. Я хотел бы нарисовать 50% изображения.

В настоящее время я использую kivy.graphics.Rectangle для рисования прямоугольника с изображением PNG в качестве атрибута источника. Затем я обновляю размер прямоугольника в зависимости от входящего значения (в данном случае 50).

Это решение просто растягивает и сжимает изображение, но всегда рисует все изображение. Я бы предпочел, чтобы размер оставался неизменным, а% отображаемого изображения был динамическим компонентом.

Я искал способ сделать это, но не нашел никаких потенциальных клиентов. Это немного усложняется тем фактом, что у меня есть фон, поэтому я не могу просто поместить белый прямоугольник поверх нарисованного изображения и изменить его размер, чтобы скрыть полностью нарисованное изображение за ним.

Любая помощь по этому вопросу будет принята с благодарностью.

1 Ответ

0 голосов
/ 29 апреля 2019

Я использовал код, подобный этому, чтобы ограничить отображаемое изображение:

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...