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 :
Le problème, c'est que c'est absolument pas optimisé et très compliqué pour créer des images complexes.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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])
Avez-vous des conseils à me donner pour trouver une solution satisfaisante ?
Partager