【问题标题】:How remove the gray background from my .png image如何从我的 .png 图像中删除灰色背景
【发布时间】:2021-06-04 15:04:13
【问题描述】:

我正在使用 pysimplegui 创建我的窗口,但在其中我的图像即使是 .png 也采用灰色背景。

这是我的 .png 图片:

带有“背景颜色=蓝色”

import PySimpleGUI as sg


icon = sg.Image("./images/plane.png")

start_column = [
    [icon]
]

layout = [
    [start_column]
]

startWindow = sg.Window("hello", layout, background_color="blue")



while True:
    events, values = startWindow.read(timeout=30)
    if events == sg.WINDOW_CLOSED:
        break

没有“背景色=”蓝色“”

【问题讨论】:

  • 为什么 .png 不能有灰色背景?
  • “即使是.png 也是灰色背景”是什么意思?
  • @ScottHunter alpha 通道不起作用,我选择 .png 图像是因为透明
  • 您的帖子中没有原始 PNG 文件。 PNG格式的图像可能没有透明背景,它取决于alpha层的值。
  • 没有什么可以“删除”。图像将显示其放置的任何背景或图像元素中设置的背景颜色。默认情况下,图像元素使用主题的背景颜色 - sg.theme_background_color()。 pysimplegui.readthedocs.io/en/latest/call%20reference/…

标签: python python-3.x pysimplegui


【解决方案1】:

有两种背景颜色,一种用于sg.Image,另一种用于sg.Window。 如果您不指定选项 background_colorsg.Image 的 background_color 将为 sg.theme_background_color()

如果您也没有指定要使用的主题,背景颜色将为'#64778d'。所以你会看到你的 PNG 的背景与窗口的背景不同。

您可以为sg.Imagesg.Window 或所有None 指定相同的背景颜色值。

import PySimpleGUI as sg

layout = [[sg.Image("d:/plane.png", background_color="blue")]]
window = sg.Window("hello", layout, background_color="blue")
print(sg.theme_background_color())
while True:
    event, value = window.read(timeout=30)
    if event == sg.WINDOW_CLOSED:
        break

window.close()

【讨论】:

    【解决方案2】:

    我用过:

    sg.theme('LightBlue')
    

    并从我的窗口参数中删除 (background-color = blue)。

    不是我想要的背景颜色,但它现在可以工作。

    【讨论】:

      猜你喜欢
      • 2014-12-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-14
      • 2021-12-29
      • 2011-10-24
      • 1970-01-01
      相关资源
      最近更新 更多