@DmitryDmitrievich

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

Создаю простую игру на Tkinter'е, есть изображение, но необходимо, чтобы изображение занимало 1 по горизонтали и 0.9 по вертикали без обрезания картинки. Любыми способами изображение только урезается, а не уменьшается. Нужно чтобы размер изображения не задавался в ручную, а точное количество в 0.9 от экрана по вертикали (занимало весь белый фон)624f5d3fa4d5d026207694.png
  • Вопрос задан
  • 2775 просмотров
Решения вопроса 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. Лучший совет по Ткинтеру универсален: не использовать его.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы
Wanted. Санкт-Петербург
от 80 000 до 150 000 ₽
Wanted. Санкт-Петербург
До 120 000 ₽
от 60 000 до 120 000 ₽
22 нояб. 2024, в 02:56
10000 руб./за проект
22 нояб. 2024, в 00:55
500 руб./за проект
21 нояб. 2024, в 23:30
300000 руб./за проект