Использование библиотеки стандартных функций TKinter для изменения размера картинки:
Можно изменить размер изображения (PhotoImage), используя методы zoom() и subsample(). Оба метода возвращают новый объект изображения PhotoImage.
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
Однако оба этих метода могут принимать только целочисленные значения в качестве аргументов, поэтому функциональность ограничена.
Можно масштабировать по десятичным значениям, но это медленно и приводит к потере качества. Приведенный ниже код демонстрирует масштабирование в 1,5 раза:
new_image = image.zoom(3, 3) #this new image is 3x the original new_image = new_image.subsample(2, 2) #halve the size, it is now 1.5x the original
Отразить картинку зеркально по горизонтали
new_image = image.zoom(-3, 3) new_image = image.subsample(-3, 3)
Использование библиотеки Pillow (PIL) для изменения размера картинки:
from PIL import Image img = Image.open("flower.png") img = img.resize((34, 26), Image.ANTIALIAS)
Взято со StackOverflow: How to resize an image using tkinter?