【发布时间】:2015-08-16 14:55:54
【问题描述】:
目前我的应用程序中有一个缩放功能非常好用,但是我希望实际的缩放框改为一个圆圈。这是当前缩放的样子:
放大的矩形是鼠标指针所在的位置,周围区域被放大。但是我怎样才能使这个放大的对象变成圆形而不是方形呢?这是我的代码:
def zoom(self, event):
if(event.delta > 0):
if self.zoomValue != 4 : self.zoomValue += 1
elif(event.delta < 0):
if self.zoomValue != 0 : self.zoomValue -= 1
self.crop(event)
def crop(self, event):
if self.zimg_id: self.canvasLower.delete(self.zimg_id)
if (self.zoomValue) != 0:
x, y = event.x, event.y
if self.zoomValue == 1:
tmp = self.orig_img.crop((x-45, y-30, x+45, y+30))
elif self.zoomValue == 2:
tmp = self.orig_img.crop((x-30, y-20, x+30, y+20))
elif self.zoomValue == 3:
tmp = self.orig_img.crop((x-15, y-10, x+15, y+10))
elif self.zoomValue == 4:
tmp = self.orig_img.crop((x-6, y-4, x+6, y+4))
size = 200, 200
# crop tmp somehow to make the image a circle? maybe?
self.zimg = ImageTk.PhotoImage(tmp.resize(size))
self.zimg_id = self.canvasLower.create_image(event.x, event.y, image=self.zimg)
【问题讨论】:
-
您的图像有 Alpha 通道吗?通常圆形图像只是角透明的方形图像。
标签: python user-interface tkinter python-imaging-library