В настоящее время я использую код:
photo = Image.open('ImgSource').resize((x,y), Image.ANTIALIAS)
img = ImageTk.PhotoImage(photo)
, где x и y - статичные c размеры, однако моя программа использует несколько разных размеров изображения, и этот код заставляет изображения прямоугольного портрета растягиваться и сжиматься.
У меня есть изображение, представленное на холсте следующим образом:
canvas = tk.Canvas(self, background='grey')
canvas.grid(row=0, rowspan=2, column=1, columnspan=2, sticky=N+S+E+W)
...
canvas.create_image(150,150, image = img, anchor = 'center')
Оставшееся пространство в сетке / окне используется кнопками.
Есть ли способ возможно, уменьшите изображение, чтобы оно поместилось внутри ячейки холста / сетки, при этом сохраняя исходное соотношение сторон? Я очень новичок в python, поэтому извините, если я что-то пропустил или не получил достаточно информации.