Juste au cas où quelqu'un vient sur cette référence pour l'avenir, comme je l'ai été à la recherche pour moi-même plus tôt. Vous pouvez utiliser tkinter est PhotoImage => sous-échantillon méthode
Je ne dirais pas vraiment redimensionne en un certain sens, mais si vous regardez la documentation qu'elle renvoie la même image, mais saute X nombre de pixels spécifié dans la méthode.
ie:
import tkinter as tk
root = tk.Tk()
canvas = tk.Canvas(root,....)
canvas_image = tk.PhotoImage(file = path to some image)#Resizing
canvas_image = canvas_image.subsample(2,2)#See below for more: #Shrinks the image by a factor of 2 effectively
canvas.create_image(0,0, image = canvas_image, anchor ="nw")
self.canvas_image = canvas_image #or however you want to store a refernece so it's not collected as garbage in memory
Donc dire que notre image d'origine a été 400x400 il est maintenant efficacement à 200x200. C'est ce que j'utilise quand j'ai besoin de compiler un jeu ou quelque chose que j'ai faite et ne veulent pas traiter avec PIL et c'est la compilation de questions.
Cependant, que la raison pour laquelle je venais d'utiliser PIL.
Vous pouvez redimensionner un PhotoImage à l'aide de la zoom et subsample méthodes. Les deux méthodes retournent un nouveau PhotoImage objet.
from tkinter import*
root =Tk()#you must create an instance of Tk() first
image =PhotoImage(file='path/to/image.gif')
larger_image = image.zoom(2,2)#create a new image twice as large as the original
smaller_image = image.subsample(2,2)#create a new image half as large as the original
Cependant, ces deux méthodes ne peuvent prendre que des valeurs entières comme arguments, de sorte que la fonctionnalité est limitée.
Il est possible à plus grande échelle par les valeurs décimales, mais il est lent et perd de la qualité. Ci-dessous montre qu'il est possible à l'échelle de 1,5 x
new_image = image.zoom(3,3)#this new image is 3x the original
new_image = image.subsample(2,2)#halve the size, it is now 1.5x the original
Autant que je sache (et ça a été un moment depuis que j'ai touché Tkinter), c'est un toolkit graphique. Le plus proche, il s'agit de "images" est le PhotoImage classe qui vous permet de les charger et de les utiliser dans vos Interfaces graphiques. Si vous souhaitez modifier/modifier une image, je pense que tu ferais mieux d'utiliser le Python imaging library (PIL).
PIL ne supporte Python 2.x Oreiller peut-être alors?
Pour de plus amples renseignements, allez à la http://effbot.org/imagingbook/image.htm
OriginalL'auteur Sean
Juste au cas où quelqu'un vient sur cette référence pour l'avenir, comme je l'ai été à la recherche pour moi-même plus tôt. Vous pouvez utiliser tkinter est PhotoImage => sous-échantillon méthode
Je ne dirais pas vraiment redimensionne en un certain sens, mais si vous regardez la documentation qu'elle renvoie la même image, mais saute X nombre de pixels spécifié dans la méthode.
ie:
Donc dire que notre image d'origine a été 400x400 il est maintenant efficacement à 200x200. C'est ce que j'utilise quand j'ai besoin de compiler un jeu ou quelque chose que j'ai faite et ne veulent pas traiter avec PIL et c'est la compilation de questions.
Cependant, que la raison pour laquelle je venais d'utiliser PIL.
OriginalL'auteur
Vous pouvez redimensionner un PhotoImage à l'aide de la
zoom
etsubsample
méthodes. Les deux méthodes retournent un nouveau PhotoImage objet.Cependant, ces deux méthodes ne peuvent prendre que des valeurs entières comme arguments, de sorte que la fonctionnalité est limitée.
Il est possible à plus grande échelle par les valeurs décimales, mais il est lent et perd de la qualité. Ci-dessous montre qu'il est possible à l'échelle de 1,5 x
OriginalL'auteur Alex Boxall
Autant que je sache (et ça a été un moment depuis que j'ai touché Tkinter), c'est un toolkit graphique. Le plus proche, il s'agit de "images" est le
PhotoImage
classe qui vous permet de les charger et de les utiliser dans vos Interfaces graphiques. Si vous souhaitez modifier/modifier une image, je pense que tu ferais mieux d'utiliser le Python imaging library (PIL).Oreiller peut-être alors?
OriginalL'auteur Noufal Ibrahim