小编典典
据我所知,内置的Tkinter Canvas类缩放不会自动缩放图像。如果无法使用自定义窗口小部件,则可以缩放原始图像,并在调用缩放功能时将其替换在画布上。
下面的代码片段可以合并到您的原始类中。它执行以下操作:
缓存的结果Image.open()。
添加了一个redraw()计算缩放图像的功能,并将其添加到画布上,还删除了先前绘制的图像(如果有)。
将鼠标坐标用作图像放置的一部分。我只是传递x and y给该create_image函数以显示图像位置如何随着鼠标移动而移动。您可以将其替换为自己的中心/偏移量计算。
这使用了Linux鼠标滚轮按钮4和5(您需要将其通用化才能在Windows等系统上使用)。
(已 更新 )代码:
class GUI:
def __init__(self, root):
# ... omitted rest of initialization code
self.canvas.config(scrollregion=self.canvas.bbox(ALL))
self.scale = 1.0
self.orig_img = Image.open(File)
self.img = None
self.img_id = None
# draw the initial image at 1x scale
self.redraw()
# ... rest of init, bind buttons, pack frame
def zoom(self,event):
if event.num == 4:
self.scale *= 2</
如果觉得《python tkinter画布设置按钮对图片放大缩小_使用Tkinter画布小部件添加放大和缩小?...》对你有帮助,请点赞、收藏,并留下你的观点哦!