2017-09-24 5 views
0

J'essaie de créer un jeu simple en utilisant tkinter en python 3.5 en utilisant le widget de toile. Pour ce jeu, je dois pouvoir utiliser une image transparente (png). Voici mon code:Dessiner une image PNG sur un python Tinter Toile

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() 

Le problème est que, en dépit d'obtenir aucune erreur je ne peux pas charger une image avec un fond transparent, mais je peux charger des images .png sans fond transparent.

Répondre

0

Vous devriez essayer ceci:

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() 

Sortie here

+0

Ne pas utiliser les importations de génériques, au lieu 'faire tkinter d'importation comme tk' –

+0

@Coal_ Dans ce cas, une importation générique est très bien; ce n'est pas une règle générale de ne jamais l'utiliser. – SneakyTurtle

+0

Je suis d'accord avec vous pour ce cas particulier, mais si vous avez besoin d'une base de code évolutive et que vous avez beaucoup de dépendances croisées, les importations génériques sont terribles. Je veux dire, il est plus facile de les oublier maintenant plutôt que de devoir ajouter «tk» à chaque objet plus tard. –