Tkinter, redimensionner image d'arrière-plan à la taille de la fenêtre

Essayer de mettre en place un fond pour mon tkinter fenêtre. J'ai un carré image d'arrière-plan, qui s'estompe au noir sur les bords, et puis la fenêtre principale a un arrière-plan noir. L'image est placée sur l'arrière-plan, et si la fenêtre est plus large que haute, à l'image des centres de lui-même dans le milieu sur le fond noir, et ça a l'air très sympa.

Toutefois, lorsque la fenêtre est plus petite que l'image en largeur et en hauteur, il met au centre de l'image au centre de la fenêtre, de sorte que vous ne voyez pas l'image entière, et il semble un peu étrange. Est-il un moyen de redimensionnement de l'image, de sorte que si le plus grand de la largeur et de la hauteur de la fenêtre est plus petite que l'image, l'image est ajustée à la taille, en gardant les proportions.

Donc, dire que l'image de fond est 600x600:

  • Dans un 800x400 fenêtre, l'image n'est pas redimensionnée, et les centres de lui-même à la verticale.
  • Dans un 500x400 fenêtre, l'image est redimensionnée pour s' 500x500, et encore des centres de lui-même à la verticale.
  • Dans un 400x900 fenêtre, l'image n'est pas redimensionnée, et les centres de lui-même à l'horizontale.

Le centrage de la fonctionnalité est déjà là, j'ai juste besoin de redimensionner la fonctionnalité.

Actuellement ce que j'ai est:

from tkinter import *

root = Tk()
root.title("Title")
root.geometry("600x600")
root.configure(background="black")

background_image = PhotoImage(file="Background.gif")

background = Label(root, image=background_image, bd=0)
background.pack()

root.mainloop()

Ne sais pas si c'est une façon de le faire dans tkinter? Ou si peut-être je voudrais écrire ma propre fonction qui redimensionne l'image en fonction de la taille de la fenêtre, cependant l'image redimensionne relativement facilement et rapidement si l'utilisateur redimensionne la fenêtre à tout moment.

  • Utiliser les oreiller pour le redimensionnement d'image.
InformationsquelleAutor Tomha | 2014-06-05