Hi, leutz,
ich weiß nicht, ob mir mir auch heute wieder helfen könnt, aber es geht
um ein Canvas auf dem ein bild liegt, worüber ein transparentes PNG
gelegt werden soll.
mit PhotoImage bekomme ich einen Fehler, dass er PNG nicht auslesen kann.
Es geht im Gro0en und Ganzen eigenlich nur um eine Verdunklung und Aufhellung.
Wenn ihr also irgendwelche Vorschläge, Tipps oder Ideen zum Andersmachen habt,
wär ich euch echt dankbar.
transparentes PNG auf Canvas?
- Hannes-Spz
- User
- Beiträge: 123
- Registriert: Sonntag 7. August 2005, 22:42
[size=85]"Unsere Situation ist immer die eines schwarzen Mannes der in einem schwarzen Keller einen schwarzen Hut sucht, den es vielleicht gar nicht gibt." Sir Karl R. Popper[/size]
Tkinter kann keine echte Alphatransparenz. Du könntest die Grafik mit PIL "vorberechnen".
Okay, so könnte es gehen:
Es wird ein Hintergrundbild erstellt, was die gleiche Grösse wie das Bild mit der Alphatransparenz hat und mit der Hintergrundfarbe von Tkinter-Widgets gefüllt ist. Und das Bild wird dann darüber gelegt, mit der Alphatransparenz als Maske. Dann braucht man es nur noch in's PhotoImage Format für Tkinter umwandeln.
Code: Alles auswählen
import Tkinter as tk
from PIL import Image, ImageTk
root = tk.Tk()
overlay = Image.open('gfx/mypics/weird3.png')
background = Image.new('RGB', overlay.size, root['background'])
background.paste(overlay, mask=overlay)
image = ImageTk.PhotoImage(background)
label = tk.Label(root, image=image)
label.pack()
root.mainloop()