Comment pouvez-vous dessiner semi-transparent primitives such as filled polygons à un dessin en GTK? 2010, et je google ne trouve pas comment mettre une valeur alpha dans une couleur pour moi. Qu'est-ce que je rate?alpha blending en gtk
2
A
Répondre
4
Utilisez gtk.gdk.Drawable.cairo_create()
et de fonctionner sur le gtk.gdk.CairoContext
retourné. Voir documentation. Cairo est une bibliothèque 2D générique utilisée dans GTK + depuis plusieurs versions; Les primitives de dessin GDK sont déconseillées en sa faveur (mais pas le GDK entier).
2
Voici le code source actuel pour le faire. Je voulais juste griser tout le pixbuf, mais pour faire une forme il faudrait juste utiliser les méthodes de chemin appropriées:
def getBlendedPixbuf(pixbuf, (r,g,b,a)):
"""Turn a pixbuf into a blended version of the pixbuf by drawing a
transparent alpha blend on it."""
pixbuf = pixbuf.copy()
#convert pixbuf to Drawable:
visual = gtk.gdk.visual_get_best()
screen = visual.get_screen()
cmap = screen.get_default_colormap()
w,h = pixbuf.get_width(), pixbuf.get_height()
drawable = gtk.gdk.Pixmap(
None, w, h, visual.depth)
gc = drawable.new_gc()
drawable.draw_pixbuf(
gc, pixbuf, 0,0,0,0,-1,-1)
#do all the drawing on it
cc = drawable.cairo_create()
cc.set_source_rgba(r,g,b,a)
cc.paint()
#put it back into a pixbhf
pixbuf.get_from_drawable(
drawable,cmap,0,0,0,0,w,h)
return pixbuf
Questions connexes
- 1. OpenGL ES alpha blending multi-texture question
- 2. Quelle est la bonne façon d'effectuer l'alpha-blending? (C)
- 3. Convertir ALPHA-2 en ALPHA-3 en C# ASP.net
- 4. Masques alpha avec OpenGL
- 5. xgettext en gtk +
- 6. Gtk # Thèmes, GTK-Wimp
- 7. élagage alpha bêta en python
- 8. Enregistrer la sortie OpenGL avec Alpha?
- 9. Comment créer un bitmap avec un canal alpha à la volée en utilisant GDI?
- 10. créé table triée en gtk
- 11. Liste mondiale en C/GTK +
- 12. Texte riche en gtk-sharp?
- 13. Localisation en arabe dans GTK
- 14. Gtkmm - "Gtk :: DrawingArea" dans "Gtk :: ScrolledWindow"?
- 15. Dessiner une forme en canal alpha uniquement
- 16. Comment générer une séquence alpha en C#?
- 17. GTK detailed_signal
- 18. Canal alpha dans OpenCV
- 19. C# Alpha forme avec Alpha Blended Blended Controls
- 20. Convertir un script GTK python en C
- 21. Cacher le code source en PHP GTK
- 22. Instanciation de widgets GTK nommés en Python
- 23. AVPlayerLayer avec masque alpha
- 24. Alpha problèmes de compositing
- 25. GDI + LockBits/Alpha
- 26. Alpha Software v 9
- 27. OpenGL Alpha Stack
- 28. Dessin personnalisé d'images alpha
- 29. UISlider alpha question
- 30. fichiers d'en-tête dans les sous-répertoires (par exemple gtk/gtk.h vs gtk-2.0/gtk/gtk.h)