Kendimi bir çok ScatterLayout kullanarak buluyorum (Scatter'ın içinde Scatter vb.). Kaçan bir özellik, bir Scatter tuvaline bir çeşit alfa maskesi uyguluyor. Fikir, bir arka plan görüntüsüne veya diğer basit derinlik numaralarına karşılık gelen basit şekil vurmalarını gerçekleştirmek olacaktır.Kivy, Maske Widget Tuval
Bazı temel OpenGL veya belki de kivy.graphics.stencil_instructions ile yapılabilir gibi hissediyorum. Ağır OpenGL komutları ile özellikle rahat değilim (onları nasıl ayıklayacağımı bilmiyorum), ancak bazı basit komutları bir Widget Sınıfına sığdırmak gayet iyi. Yani burada
ben başka kaynaklardan alıyorum budur ama (Dikdörtgen gibi) bunun ötesinde ilkel katı almak istiyorum:
(kod test edilmedi!)
bir doku bazlı yönü Güncellemewith self.canvas:
# Hopefully I can build my "transparency mask" manually with a Texture
texture = Texture.create(size=(64, 64))
size = 64 * 64 * 3
buf = [int(x * 255/size) for x in range(size)]
buf = b''.join(map(chr, buf))
texture.blit_buffer(buf, colorfmt='rgb', bufferfmt='ubyte')
StencilPush()
Rectangle(texture=texture, pos=self.pos, size=(64, 64))
#use mask
StencilUse()
"""
Will we get an image based mask on all drawing commands placed here?
"""
StencilPop()
[bu cevap] ile çalışmadığından emin misiniz (http://stackoverflow.com/questions/35802203/how-do-i-mask-an-image-in-kivy-using-python)? – KeyWeeUsr
@KeyWeeUsr Postanız yeni fikirler getirdi, ancak henüz test yapmadı. Sorumu güncellenmiş düşüncemi yansıtacak şekilde düzenledim. – user2097818