На всякий случай, если кто-нибудь столкнется с этим для дальнейшего использования, так как я сам искал это раньше.Вы можете использовать метод PhotoImage => subsample от tkinter
. Я бы не сказал, что он в определенном смысле действительно изменяет размеры, но если вы посмотрите документацию, он возвращает то же изображение, но пропускает количество пикселей X, указанное в методе.
т.е.:
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
Итак, скажем, наше исходное изображение было 400x400, теперь оно эффективно в 200x200.Это то, что я использовал, когда мне нужно собрать игру или что-то, что я сделал, и не хочу иметь дело с PIL и проблемами с компиляцией.
Однако, кроме вышеуказанной причины, я бы просто использовал PIL.