2017-09-24 2 views
0

Ich versuche, ein einfaches Spiel mit tkinter in python 3.5 mit dem Canvas-Widget zu erstellen. Für dieses Spiel muss ich ein transparentes (png) Bild verwenden können. Hier ist mein Code:Zeichnen eines PNG-Bildes auf einem Tinter Canvas Python

from PIL import ImageTk 
from tkinter import Tk, Canvas 

root = Tk() 
im = ImageTk.PhotoImage(file="test.png") 
canvas = Canvas(root, width=900, height=900) 
canvas.pack() 
canvasImage = canvas.create_image(0, 0, image=im, anchor="nw") 
root.mainloop() 

Das Problem ist, dass trotz fehler bekommt ich kein Bild mit einem transparenten Hintergrund laden, aber ich PNG-Bilder ohne transparenten Hintergrund laden.

Antwort

0

Sie sollten dies versuchen:

from tkinter import * 
root = Tk() 
canvas = Canvas(root, width=500, height=500) 
canvas.pack() 
img = PhotoImage(file='path/your_image.png') 
canvas.create_image(250, 250, image=img) 
root.mainloop() 

Ausgabe here

+0

Sie Wildcard-Importe verwenden nicht, stattdessen tun 'Import tkinter als tk' –

+0

@Coal_ In diesem Fall wird ein Wildcard-Import ist in Ordnung; Es ist keine allgemeine Regel, sie niemals zu verwenden. – SneakyTurtle

+0

Ich stimme Ihnen für diesen speziellen Fall zu, aber wenn Sie eine skalierbare Codebasis haben und viele gegenseitige Abhängigkeiten haben, sind Platzhalterimporte schrecklich. Ich meine, es ist einfacher, sie jetzt zu vergessen, als jedes Objekt später mit 'tk' versehen zu müssen. –

Verwandte Themen