Pygame - 我如何改变图像的颜色但改变它的颜色?
Pygame - How do I blit an image but change its color?
我有一个随机标志生成器程序。我为旗帜制作了一个白色 "background",以及不同的白色符号等。它们是白色的原因是我可以使用 RGB 值给它上色。问题是,我不确定该怎么做(如果可能的话),那么是否可以 blit 图像并在 pygame 中给它一个 RGB 值?
例如(这可能是不正确的,但最后 2 个 blits 中的第二个元组表示 RGB):
surface=pygame.display.set_mode((100,200))
background=pygame.image.load("Background.png")
flagback=pygame.image.load("back.png")
symbol=pygame.image.load("symbol.png")
surface.blit(background,(0,0))
surface.blit(flagback,(0,0),(100,0,0))
surface.blit(symbol,(0,0),(0,100,0))
您可以使用 pygame.Surface.fill
方法用纯色填充表面,例如:
background.fill((0, 100, 200))
上面的线条将填充整个图像,甚至是透明像素。
您还可以传递 special_flags
参数以使用不同的 :
background.fill((0, 100, 200), special_flags=pygame.BLEND_MULT)
这个不影响完全透明的像素。
如果您只想绘制一些形状,例如矩形、圆形或多边形,请使用 pygame.draw
(or pygame.gfxdraw
) 模块中的函数。
我有一个随机标志生成器程序。我为旗帜制作了一个白色 "background",以及不同的白色符号等。它们是白色的原因是我可以使用 RGB 值给它上色。问题是,我不确定该怎么做(如果可能的话),那么是否可以 blit 图像并在 pygame 中给它一个 RGB 值? 例如(这可能是不正确的,但最后 2 个 blits 中的第二个元组表示 RGB):
surface=pygame.display.set_mode((100,200))
background=pygame.image.load("Background.png")
flagback=pygame.image.load("back.png")
symbol=pygame.image.load("symbol.png")
surface.blit(background,(0,0))
surface.blit(flagback,(0,0),(100,0,0))
surface.blit(symbol,(0,0),(0,100,0))
您可以使用 pygame.Surface.fill
方法用纯色填充表面,例如:
background.fill((0, 100, 200))
上面的线条将填充整个图像,甚至是透明像素。
您还可以传递 special_flags
参数以使用不同的
background.fill((0, 100, 200), special_flags=pygame.BLEND_MULT)
这个不影响完全透明的像素。
如果您只想绘制一些形状,例如矩形、圆形或多边形,请使用 pygame.draw
(or pygame.gfxdraw
) 模块中的函数。