Python / Tkinter - обрезка холста на основе пробелов? - PullRequest
0 голосов
/ 06 марта 2012

Я возился с tkinter и использовал его для создания динамической графики на основе набора данных.

Я начал с холста произвольного размера 1000x1000 пикселей, и теперь у меня есть сделанные изображения, я подумал, есть ли возможность обрезать холст вокруг незанятых частей краев.

Я думаю о нескольких способах достижения этой цели, один из которых заключался бы в том, чтобы обрезать каждое ребро до тех пор, пока объект не попал, однако я думаю, что это не сработает, потому что, насколько я могу судить, объекты непосредственноадресованы на местоположение холста, поэтому любые изменения холста в верхней части RHS могут привести к тому, что объекты будут двигаться согласованно, другой способ (каким-то образом) сгруппировать все объекты в один именованный объект, получить границы и каким-то образом перерисоватьмного на новом размере холста.

Интересно, были ли у кого-нибудь какие-нибудь идеи или они делали это раньше?

1 Ответ

1 голос
/ 06 марта 2012

Метод bbox холста дает вам ограничивающую рамку (противоположные углы) объекта или объектов на холсте.Итак, my_canvas.bbox("all") вернет вам прямоугольник, который охватывает все элементы на холсте.Согласно официальной документации Tk, этот метод «может переоценить фактическую ограничивающую рамку на несколько пикселей»

Я не совсем уверен, что вы подразумеваете под «кадрированием» в контексте этого вопроса, но так как выЗная x / y верхнего левого угла объектов, вы можете использовать метод move , чтобы переместить все объекты на -x1 / -y1 пикселей, чтобы переместить все в верхний левый угол.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...