Volle Alphakanal Unterstützung mit PIL und TkInter?

Fragen zu Tkinter.
Antworten
lkinfdotorg
User
Beiträge: 2
Registriert: Montag 27. Februar 2006, 09:33

Hallo ihr!
Ich habe momentan das Problem, dass ich unbedingt halbtransparente PNG Bilder in meiner TkInter GUI anzeigen möchte. Mit PIL ist das Anzeigen von den "moderneren" Formaten in Tk ja kein Problem, jedoch funktioniert das mit der Halbtransparenz nicht.

Gibt es eine Möglichkeit das wirklich zu realisieren? Ich habe leider die Vermutung, dass ich da mit TkInter auf dem falschen Weg bin. Muss ich auf GTK, wxPython umsteigen?

Danke für die Hilfe!

Gruß
BlackJack

Je nachdem was Du machen möchtest, könntest Du die Bilder mit PIL "übereinanderlegen" und ein Hintergrund "drunterlegen" und dann das Ergebnis in Tkinter anzeigen.
lkinfdotorg
User
Beiträge: 2
Registriert: Montag 27. Februar 2006, 09:33

Mhh, also ich glaube, dass wird nicht so einfach sein, bei meinem Beispiel.

Ich habe ein Fenster mit einem Canvas worauf ein Bild liegt. Dieses Bild schiebe ich mit Pfeiltasten hin und her. Diese Buttons, die ich bis jetzt nutze möchte ich aber durch Grafiken ersetzen, die z.B. Schatten haben, die den Hintergrund, also das, was sich bewegt, nur bedingt durchlassen. Ein Schatten eben.
Jetzt müsst ich doch aber bei jeder Pixelverschiebung die Buttons neu berechnen lassen. Ist das nicht etwas zu umständlich? Und funktionieren mit dieser Methode auch wirklich Alphakanäle, oder kann ich nur bestimmte Bereiche oder Farben entweder voll oder gar nicht transparent machen?

Danke für die Antwort!

Gruß
BlackJack

PIL kennt richtige Alphakanäle, Du könntest also die Buttons immer neu berechnen indem Du 3 Schichten übereinanderlegst: Hintergrundfarbe, den Ausschnitt von dem Bild der gerade unter dem Button ist und dann den Button selbst. Erfordert natürlich ein bischen Programmierarbeit. Über die Geschwindigkeit kann ich ohne es auszuprobieren nichts sagen. Das hängt davon ab, wie gross die Buttons sind, wie viele Du davon hast und wie schnell Tkinter die geänderten Grafiken übernimmt.

Was muss denn die GUI noch alles können? Wenn Du "alles" selber machen kannst, dann würde ich PyGame empfehlen. Ansonsten müsstest Du entweder Transparenz (ausser "GIF-Transparenz") aufgeben oder ein anderes GUI Toolkit in's Auge fassen.
Benutzeravatar
Mr_Snede
User
Beiträge: 387
Registriert: Sonntag 8. Februar 2004, 16:02
Wohnort: D-Dorf, Bo

Ich bin mir nicht ansatzweise sicher, ob es dir hilft, weil ich noch nicht wirklich bei der Programmierung von GUI's angekommen bin.
Trotzdem hier etwas aus meiner Linksammlung:
http://www.tkzinc.org/index.php?n=Main.HomePage

Bei den Screenshots wird ganz unten die Kombination mit Python erwähnt.

cu Sebastian
Antworten