Transparence de la couleur de fond d'une Bounding Box
Citation de Didier_93 le 31 janvier 2026, 17 h 55 minBonjour.
Je suis un débutant sur Python. Qui pourrait m'indiquer comment régler la transparence de la couleur de fond de la bounding box qui encadre le texte afin qu'elle ne le cache pas ?
Merci d'avance pour vos réponses.
Bonjour.
Je suis un débutant sur Python. Qui pourrait m'indiquer comment régler la transparence de la couleur de fond de la bounding box qui encadre le texte afin qu'elle ne le cache pas ?
Merci d'avance pour vos réponses.
Citation de PythonTech le 1 février 2026, 20 h 58 minSalut Didier_93
Le problème que tu rencontre est causé par le fait que canva tkinter ne gère pas la transparence! Le rectangle que tu as crée est opaque et il faut mettre le texte au dessus du rectangle. Voici un code que j'ai testé et qui marche bien:
from tkinter import * # ----------------------------- # Fonction pour encadrer un texte # ----------------------------- def encadre_mot(mot, fonte): # Création temporaire du texte (pour calculer la bbox) text_id = canvas.create_text( 400, 300, text=mot, anchor=CENTER, font=fonte, fill=couleur_texte ) # Récupération de la bounding box x1, y1, x2, y2 = canvas.bbox(text_id) # Suppression du texte temporaire canvas.delete(text_id) # Dessin du rectangle (arrière-plan) canvas.create_rectangle( x1 - 10, y1 - 10, x2 + 10, y2 + 10, outline="blue", width=2, fill=couleur_fond ) # Dessin définitif du texte (au-dessus du rectangle) canvas.create_text( 400, 300, text=mot, anchor=CENTER, font=fonte, fill=couleur_texte ) # ----------------------------- # Fenêtre principale # ----------------------------- root = Tk() root.title("Texte encadré - Tkinter") root.geometry("800x600") # ----------------------------- # Canvas # ----------------------------- canvas = Canvas(root, width=800, height=600, bg="white") canvas.pack() # ----------------------------- # Paramètres d'affichage # ----------------------------- couleur_texte = "black" couleur_fond = "#dddddd" # gris clair ma_fonte = ("Arial", 20, "bold") # ----------------------------- # Test # ----------------------------- mot = "Du texte avec Python" encadre_mot(mot, ma_fonte) # ----------------------------- # Boucle principale # ----------------------------- root.mainloop()Voici l'aperçu en exécutant le code:
Si tu rencontre des problèmes, n'hésite pas à poser les ici!
Bonne chance Didier_93!
Salut Didier_93
Le problème que tu rencontre est causé par le fait que canva tkinter ne gère pas la transparence! Le rectangle que tu as crée est opaque et il faut mettre le texte au dessus du rectangle. Voici un code que j'ai testé et qui marche bien:
from tkinter import *
# -----------------------------
# Fonction pour encadrer un texte
# -----------------------------
def encadre_mot(mot, fonte):
# Création temporaire du texte (pour calculer la bbox)
text_id = canvas.create_text(
400, 300,
text=mot,
anchor=CENTER,
font=fonte,
fill=couleur_texte
)
# Récupération de la bounding box
x1, y1, x2, y2 = canvas.bbox(text_id)
# Suppression du texte temporaire
canvas.delete(text_id)
# Dessin du rectangle (arrière-plan)
canvas.create_rectangle(
x1 - 10, y1 - 10,
x2 + 10, y2 + 10,
outline="blue",
width=2,
fill=couleur_fond
)
# Dessin définitif du texte (au-dessus du rectangle)
canvas.create_text(
400, 300,
text=mot,
anchor=CENTER,
font=fonte,
fill=couleur_texte
)
# -----------------------------
# Fenêtre principale
# -----------------------------
root = Tk()
root.title("Texte encadré - Tkinter")
root.geometry("800x600")
# -----------------------------
# Canvas
# -----------------------------
canvas = Canvas(root, width=800, height=600, bg="white")
canvas.pack()
# -----------------------------
# Paramètres d'affichage
# -----------------------------
couleur_texte = "black"
couleur_fond = "#dddddd" # gris clair
ma_fonte = ("Arial", 20, "bold")
# -----------------------------
# Test
# -----------------------------
mot = "Du texte avec Python"
encadre_mot(mot, ma_fonte)
# -----------------------------
# Boucle principale
# -----------------------------
root.mainloop()
Voici l'aperçu en exécutant le code:

Si tu rencontre des problèmes, n'hésite pas à poser les ici!
Bonne chance Didier_93!
Citation de Prumux le 5 octobre 2026, 9 h 07 minBonjour,
vous pouvez régler la transparence de la couleur de fond de la bounding box avec un canal alpha (RGBA), par exemplefacecolor=(1, 0, 0, 0.3)pour un fond rouge à 30 % d’opacité.
Bonjour,
vous pouvez régler la transparence de la couleur de fond de la bounding box avec un canal alpha (RGBA), par exemple facecolor=(1, 0, 0, 0.3) pour un fond rouge à 30 % d’opacité.
Citation de pip_install le 6 octobre 2026, 10 h 08 minBonjour Prumux,
Merci pour cette précision. Effectivement, la transparence du fond de la bounding box peut être réglée à l’aide du canal alpha d’une couleur RGBA.
Dans une couleur RGBA, les quatre valeurs correspondent respectivement à :
(Rouge, Vert, Bleu, Alpha)
Le canal **alpha** est donc la quatrième valeur. Il détermine le niveau de transparence de la couleur :
- alpha = 0 : couleur totalement transparente ; - alpha = 0.3 : couleur faiblement opaque, donc très transparente ; - alpha = 0.5 : semi-transparente ; - alpha = 1 : couleur totalement opaque.
Ainsi :
facecolor=(1, 0, 0, 0.3)
définit un fond rouge avec une opacité de 30 %, ce qui permet de voir l'image ou les éléments situés derrière la bounding box.
Merci pour votre contribution !
Bonjour Prumux,
Merci pour cette précision. Effectivement, la transparence du fond de la bounding box peut être réglée à l’aide du canal alpha d’une couleur RGBA.
Dans une couleur RGBA, les quatre valeurs correspondent respectivement à :
(Rouge, Vert, Bleu, Alpha)
Le canal **alpha** est donc la quatrième valeur. Il détermine le niveau de transparence de la couleur :
- alpha = 0 : couleur totalement transparente ; - alpha = 0.3 : couleur faiblement opaque, donc très transparente ; - alpha = 0.5 : semi-transparente ; - alpha = 1 : couleur totalement opaque.
Ainsi :
facecolor=(1, 0, 0, 0.3)
définit un fond rouge avec une opacité de 30 %, ce qui permet de voir l'image ou les éléments situés derrière la bounding box.
Merci pour votre contribution !
Citation de Prumux le 10 octobre 2026, 9 h 57 minCitation de pip_install le 6 octobre 2026, 10 h 08 minBonjour Prumux,
Merci pour cette précision. Effectivement, la transparence du fond de la bounding box peut être réglée à l’aide du canal alpha d’une couleur RGBA.
Dans une couleur RGBA, les quatre valeurs correspondent respectivement à :
(Rouge, Vert, Bleu, Alpha)
Le canal **alpha** est donc la quatrième valeur. Il détermine le niveau de transparence de la couleur :
- alpha = 0 : couleur totalement transparente ; - alpha = 0.3 : couleur faiblement opaque, donc très transparente ; - alpha = 0.5 : semi-transparente ; - alpha = 1 : couleur totalement opaque.
Ainsi :
facecolor=(1, 0, 0, 0.3)
définit un fond rouge avec une opacité de 30 %, ce qui permet de voir l'image ou les éléments situés derrière la bounding box.
Merci pour votre contribution !
Merci beaucoup..
Citation de pip_install le 6 octobre 2026, 10 h 08 minBonjour Prumux,
Merci pour cette précision. Effectivement, la transparence du fond de la bounding box peut être réglée à l’aide du canal alpha d’une couleur RGBA.
Dans une couleur RGBA, les quatre valeurs correspondent respectivement à :
(Rouge, Vert, Bleu, Alpha)
Le canal **alpha** est donc la quatrième valeur. Il détermine le niveau de transparence de la couleur :
- alpha = 0 : couleur totalement transparente ; - alpha = 0.3 : couleur faiblement opaque, donc très transparente ; - alpha = 0.5 : semi-transparente ; - alpha = 1 : couleur totalement opaque.
Ainsi :
facecolor=(1, 0, 0, 0.3)
définit un fond rouge avec une opacité de 30 %, ce qui permet de voir l'image ou les éléments situés derrière la bounding box.
Merci pour votre contribution !
Merci beaucoup..