我制作了一个函数,可以将PNG中图像的黑色(透明背景的黑色图标)更改为Windows中的强调主题的颜色。
我使用此函数使所有图标与窗口的颜色界面相匹配,但使用此函数,我需要手动调用图像的函数,然后选择图像并将其定义为
PhotoImage
把它当作一个
Label
在特金特。
这样做的目的,是制定一种方法,将主PNG(黑色图标)定义为一个动态彩色图像,该图像可以用作
光图像
但即使有
Image.TkPhotoImage
PIL库的方法,我还没做。
我的函数代码是:
def changeImageColorToAccentColor(imagename):
imagename = str(imagename)
accent = str(getAccentColor().lstrip('#'))
rcolor = int(str(accent[0:2]),16)
gcolor = int(str(accent[2:4]),16)
bcolor = int(str(accent[4:6]),16)
im = Image.open(str(imagename))
im = im.convert('RGBA')
data = np.array(im)
red, green, blue, alpha = data.T
white_areas = (red == 0) & (blue == 0) & (green == 0) & (alpha == 255)
data[..., :-1][white_areas.T] = (rcolor, gcolor, bcolor)
im2 = Image.fromarray(data)
image1 = ImageTk.PhotoImage(im2)
return(image1)
然后,我在Tkinter中定义了我的标签,给出了
image
选项返回photoimage对象的函数。
icon = Label(image=changeImageColorToAccentColor('file.png'))
但它对我不起作用,所以,如果这个证据不起作用,我就无法制造出这个物体。