2013-08-19 5 views
4

Я пытаюсь создать проект tkinter в python 2.7, где пользователь может изменить размер окна, и все внутри окна будет масштабироваться. Это означает, что холст, фигуры на холсте и, самое главное, PhotoImages будут масштабироваться с помощью окна. Моя проблема, это для меня жизнь, я не могу правильно изменить размеры моих изображений. Я знаю, что subsample и zoom существуют для этой цели, но в первую очередьНевозможно изменить размер изображения с помощью tkinter

plantImage = PhotoImage(file="images/Arable_Cell.gif") 
plantImage.subsample(2, 2) 
canvas.create_image(0, 0, anchor=NW, image=plantImage) 

не делает каких-либо заметных изменений в 50x50 пикселя изображения и так же для увеличения (2, 2). Важно отметить, что я знаю, что PIL существует, но для целей этого проекта я не могу загрузить дополнительные библиотеки. Так что я делаю неправильно?

ответ

7

Согласно docs,

подвыборки (я, х, у = '')

Вернуться новый PhotoImage основан на том же изображения, как этот виджет, но использовать только каждый XTH или Yth пиксели.

I.e. subsample не модифицирует изображение, оно создает новый, поэтому вместо этого попробуйте:

originalPlantImage = PhotoImage(file="images/Arable_Cell.gif") 
displayPlantImage = originalPlantImage.subsample(2, 2) 
canvas.create_image(0, 0, anchor=NW, image=displayPlantImage) 
+0

Oops. Пропустили тонкости описания функции. Еще раз спасибо. – EasilyBaffled

+0

@EasilyBaffled Нет проблем, легко пропустить. – Brionius

Смежные вопросы