如何在 Pygame 中将具有一定透明度的 PNG blit 到表面上?

新手上路,请多包涵

我正在尝试将 PNG 图像 blit 到表面上,但由于某种原因图像的透明部分变成黑色,这是简单的代码:

 screen = pygame.display.set_mode((800, 600), pygame.DOUBLEBUF, 32)

world = pygame.Surface((800, 600), pygame.SRCALPHA, 32)
treeImage = pygame.image.load("tree.png")

world.blit(treeImage, (0,0), (0,0,64,64))
screen.blit(world, pygame.rect.Rect(0,0, 800, 600))

我该怎么做才能解决问题?该图像具有 alpha 透明度,我在 PhotoShop 中将其打开,背景变为透明,不是黑色或白色或任何其他颜色。

感谢您的支持 :)

原文由 Eric 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 467
1 个回答

http://www.pygame.org/docs/ref/image.html 推荐:

对于 alpha 透明度,就像在 .png 图像中一样,在加载后使用 convert_alpha() 方法,以便图像具有每个像素的透明度。

原文由 Nick T 发布,翻译遵循 CC BY-SA 2.5 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题