PysimpleGui - 国际象棋示例中关于 size=(1, 1) 和图像着色的混淆

PysimpleGui - confusion about size=(1, 1) and image coloring in Chess example

我正在查看 PysimpleGui 示例中的国际象棋示例,我对这部分感到困惑:

def render_square(image, key, location):
    if (location[0] + location[1]) % 2:
        color =  '#B58863'
    else:
        color = '#F0D9B5'
    return sg.RButton('', image_filename=image, size=(1, 1), button_color=("white", color), pad=(0, 0), key=key)

这里的size(1,1)好像代表了image_size? 但是,如果我改变大小,我看不到任何变化。我假设瓷砖 会变大吗?

关于图像的着色,似乎 "blank" 瓷砖本来是黑色的,所以它们变成白色,然后将板 "color"(棕色)应用到它们上面..

但是,棋子保留了它们的颜色(白色或黑色), 尽管也将此功能应用于他们。他们的背景在变,但作品本身并没有变。我错过了什么?

谢谢。

改变按钮的颜色不会改变按钮上图像的颜色。它改变了按钮的颜色。按钮有 2 种颜色,背景和文本。

如果你想改变图像的颜色,那么你需要像 PIL 这样的东西来做到这一点。

您可以使用按钮元素更改图像的大小,但不能 "color"。同样,文档是理解这是如何完成的关键。这不是您可以提供的像素规格。使用 "Subsample" 将使图像变为 1/2、1/3、1/4、1/5...,它原来的大小。