如何去除 Pygame (make_surface) 中的背景颜色?

How to remove background color in Pygame (make_surface)?

我已经使用 opencv 读取 png 文件(没有背景)并将它们转换为 pygame 表面。这是我如何做到的两个例子:

方法一:

character=pygame.image.load("character.png")

方法二:

CharacterImage=cv2.imread("character.png")
CharacterImage=convertToRGB(CharacterImage,CharSize,CharSize)
#charSize is desired character size (for example: 50)
#I have created a user defined function as pygame renders in RGB whereas cv2 renders in BGR image format.
CharacterActions.append(rotate(pygame.surfarray.make_surface(CharacterImage),charrot))
#charrot is rotation angle

我知道我可以手动调整图像大小,然后使用第一种方法获得透明背景图像。但是我想知道是否可以通过第二种方法获得相同的东西?我不想手动编辑这么多图像来调整它们的大小,这就是为什么我想知道是否有相同的方法。

提前致谢

在您使用方法 1 (pygame.image.load()) 加载的图像上,您应该使用 pygame.transform.scale() and pygame.transform.rotate() 来操作加载的图像。 为了保持透明度,您需要保持正在加载的图像的 alpa。为此,您需要在生成的图像上使用 .convert_alpha()。您可以在转换之后或之前执行此操作。

对于这些命令中的每一个,我都已将它们链接到文档,只需单击它们即可阅读。