【问题标题】:Rounded corners Tkinter / Transparent image on Canvas Tkinter圆角 Tkinter / Canvas Tkinter 上的透明图像
【发布时间】:2020-12-01 12:59:44
【问题描述】:

我正在为一个程序制作 UI。我设法用标签中的图像模糊了窗口(见图),我想使窗口的边缘变圆,所以我创建了一个带有角 corner 的 png 图像,我正在使用 self.window.wm_attributes('-transparentcolor','black') 使corner.png的黑色透明。

但是给这个image

这个脚本在画布上的角落

self.img = Image.open('corner.png')
self.canvas = Canvas(self.window, width=50, height=50,bd=0, highlightthickness=0, relief='ridge')
self.canvas.place(x=0,y=20)
self.photoimage = ImageTk.PhotoImage(self.img)
self.canvas.create_image((0,0), image=self.photoimage,anchor='nw')
self.canvas.update() 

我希望能够从画布上移除这个白色背景,我已经尝试将模糊和角落放在同一个画布上,但每次放置角落时,整个背景都会变成白色。

编辑:blur只是一个截图png,每次点击窗口都会更新,用opencv GaussianBlur。

Edit2:它工作working

【问题讨论】:

    标签: python tkinter


    【解决方案1】:

    更新: 使用此代码,我将角落与模糊放在一起,因此不再需要画布 输出:image

    import cv2 
    from pathlib import Path
    homeDir = str(Path.home())
    path = homeDir + '\Desktop\blur.png'
    path2 = homeDir + '\Desktop\corner.png'
    
    
    from PIL import ImageTk, Image
    
    background = Image.open(path)
    foreground = Image.open(path2)
    
    background.paste(foreground, (0, 0), foreground)
    background.save(path)
    

    Edit2 上的结果

    【讨论】:

      猜你喜欢
      • 2016-02-27
      • 1970-01-01
      • 1970-01-01
      • 2017-11-04
      • 1970-01-01
      • 2018-07-26
      • 1970-01-01
      相关资源
      最近更新 更多