@DmitryDmitrievich

Изменение размера изображения в Tkinter, Python?

Создаю простую игру на Tkinter'е, есть изображение, но необходимо, чтобы изображение занимало 1 по горизонтали и 0.9 по вертикали без обрезания картинки. Любыми способами изображение только урезается, а не уменьшается. Нужно чтобы размер изображения не задавался в ручную, а точное количество в 0.9 от экрана по вертикали (занимало весь белый фон)624f5d3fa4d5d026207694.png
  • Вопрос задан
  • 2109 просмотров
Решения вопроса 1
@lz961
получить размеры канвы
cnv = tk.Cnavas(...) # создали канву
.....
w = cnv['width']
h = cnv['height']


подогнать изображение под канву
from PIL import Image
......
image = Image.open(....) # представили изображение в виде объекта PIL.Image
scaled_image = image.resize((w,h), Image.ANTIALIAS) # растянули/сжали


нарисовать изображение на канве
from PIL import ImageTk
image4canvas = ImageTk.PhotoImage(scaled_image) # представили изображение в виде объекта PIL,
# с которым умеет работать канва
cnv.create_image(0, 0, anchor=tk.NW, image=image4canvas) # нарисовали изображение на канве


Ткинтер, по сути, жуткое извращение, некий интерфейс к функциям для построения графического интерфейса пользователя некоторого изначально мертворождённого языка tcl/tk. Лучший совет по Ткинтеру универсален: не использовать его.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы