afficher une image non rectangulaire
Bonjour,
Je cherche depuis un moment à résoudre une question que je me pose à savoir : peut on afficher une image non rectangulaire dans un canvas ?
Pour faire simple existe-t-il une méthode permettant d'importer une image, exemple :
image=tk.PhotoImage(file='chemin fichier')
puis de l'afficher dans un canvas en spécifiant une couleur qui ne doit pas se superposer au canvas déjà existant, exemple :
canvas.create_image(coordonnée,coordonnée,image=image,fond='white')) #ici la commande fond est totalement fantaisiste et n'a pour but que d'illustrer ma question
Malheureusement je n'ai pas trouvé de paramètres ressemblant à cela...
Peut-être existe-t-il tout simplement une méthode qui découpe directement l'image de base mais je n'ai rien trouvé qui ressemble à ce que je cherche.
Au final le seul truc qui peut marcher, c'est :
Code:
1 2 3 4 5 6 7 8 9 10 11 12
|
size=2 #taille des pixels (ne marche pas avec 1 mais c'est normal)
matrice=[['black','red'],
['blue','white']]
#tY,tX sont les dimensions de la matrices
#y,x sont les coordonnées pour afficher l'image sur le canvas
for i in range(0,tY): #on parcours la matrice
for j in range(0,tX):
if obj[i][j]!='white': #s'il ne s'agit pas de la couleur de fond, on l'affiche
can.create_rectangle(y+(j*size),x+(i*size),y+(j*size)+size-1,x+(i*size)+size-1,fill=matrice[i][j],outline=matrice[i][j]) |
Le problème, c'est que c'est absolument pas optimisé et très compliqué pour créer des images complexes.
Avez-vous des conseils à me donner pour trouver une solution satisfaisante ?