Redimensionar imagen en Tcl/Tk (tkinter) sin utilizar PIL
Cuando se incorpora una imagen en una aplicación que utiliza Tcl/Tk y se necesita ajustar el tamaño de una imagen tenemos dos alternativas.
La primera es importar PIL (Python Imaging Library) u otro módulo. La segunda es utilizar los métodos provistos para PhotoImage.
Para aumentar las dimensiones de una imagen se utiliza el método zoom(escala_x, escala _y), zoom(escala).
Este método agranda el tamaño de la imagen a ( ancho * escala_x, altura * escala_y) píxeles, utilizando el remuestreo vecino más cercano. Si sólo se proporciona una escala, se utilza para ambas dimensiones.
Los valores de escala_x, escala _y, escala deben ser números enteros.
Para reducir las dimensiones de una imagen se utiliza el método subsample(escala_x, escala_y), subsample(escala).
Este método Reduce el tamaño de la imagen a ( ancho / escala_x, altura / escala_y) píxeles, utilizando el remuestreo del vecino más cercano. Si solo se próporciona una escala, se usa para ambas dimensiones.
Nuevamente, los valores de escala_x, escala _y, escala deben ser números enteros
import
tkinteras
tkfrom
tkinterimport
ttkdef
boton_aumentar(): etiqueta.config(image=imagen_zoom)def
boton_reducir(): etiqueta.config(image=imagen_sub)def
boton_original(): etiqueta.config(image=imagen) ventana=tk.Tk() ventana.title("Ajuste de imagen"
) ventana.geometry("600x500"
) imagen=tk.PhotoImage(file="Python.png"
)#Aumenta las dimensiones de la imagen en un (2 * ancho_imagen)
imagen_zoom=imagen.zoom(2)#Reduce las dimensiones de la imagen en un (ancho_imagen / 2)
imagen_sub=imagen.subsample(2) etiqueta=ttk.Label(image=imagen) etiqueta.place(x=130, y=20) boton_zoom=ttk.Button(text="Aumentar(200%)"
, command=boton_aumentar) boton_zoom.place(x=20, y=20, width=100) boton_ori=ttk.Button(text="Original (100%)"
, command=boton_original) boton_ori.place(x=20, y=50, width=100) boton_sub=ttk.Button(text="Reducir (50%)"
, command=boton_reducir) boton_sub.place(x=20, y=80, width=100) ventana.mainloop()
Al presionar el botón Aumentar escala la imagen un 200% (2 * ancho_imagen), y la imagen se ve como sigue:
Al presionar el botón Original muestra la imagen al 100%:
Al presionar el botón Reducir escala la imagen un 50% (ancho_imagen / 2), y la imagen se muestra así:
Este y otros contenidos los podés aprender en el Curso de Python