pygame 中的图标未正确加载透明度
icon in pygame does not load transparency correctly
我查看了与我相关的所有其他问题,其中 none 个有效,
到目前为止,这是我的代码:
icon = pygame.image.load('icon.png')
surface= pygame.Surface(icon.get_size(), depth=24)
key = (0,255,0)
surface.fill(key, surface.get_rect())
surface.set_colorkey(key)
surface.blit(icon, (0,0))
surface.set_alpha(128)
pygame.display.set_icon(surface)
原图为:
但执行时它仍然包含黑色背景,几乎看不到 'P'
注意:抱歉,图片太大了,不知道如何缩小
将您的代码更改为
icon = pygame.image.load('icon.png')
icon = pygame.transform.scale(icon, (32, 32))
surface= pygame.Surface(icon.get_size())
key = (0,255,0)
surface.fill(key)
surface.set_colorkey(key)
surface.blit(icon, (0,0))
pygame.display.set_icon(surface)
注意变化:
我删除了 surface.set_alpha(128)
,因为它不起作用。图标仅支持颜色键,但不支持每像素 alpha。
我将 surface.fill(key, surface.get_rect())
更改为 surface.fill(key)
因为不需要将 surface.get_rect()
作为参数传递。
此外,添加了行 icon = pygame.transform.scale(icon, (32, 32))
以确保图像具有正确的尺寸。更大的尺寸通常不起作用(取决于您的 OS/window 经理)。
我查看了与我相关的所有其他问题,其中 none 个有效, 到目前为止,这是我的代码:
icon = pygame.image.load('icon.png')
surface= pygame.Surface(icon.get_size(), depth=24)
key = (0,255,0)
surface.fill(key, surface.get_rect())
surface.set_colorkey(key)
surface.blit(icon, (0,0))
surface.set_alpha(128)
pygame.display.set_icon(surface)
原图为:
但执行时它仍然包含黑色背景,几乎看不到 'P'
注意:抱歉,图片太大了,不知道如何缩小
将您的代码更改为
icon = pygame.image.load('icon.png')
icon = pygame.transform.scale(icon, (32, 32))
surface= pygame.Surface(icon.get_size())
key = (0,255,0)
surface.fill(key)
surface.set_colorkey(key)
surface.blit(icon, (0,0))
pygame.display.set_icon(surface)
注意变化:
我删除了 surface.set_alpha(128)
,因为它不起作用。图标仅支持颜色键,但不支持每像素 alpha。
我将 surface.fill(key, surface.get_rect())
更改为 surface.fill(key)
因为不需要将 surface.get_rect()
作为参数传递。
此外,添加了行 icon = pygame.transform.scale(icon, (32, 32))
以确保图像具有正确的尺寸。更大的尺寸通常不起作用(取决于您的 OS/window 经理)。