【问题标题】:Pygame - How do I blit an image but change its color? [duplicate]Pygame - 我如何改变图像但改变它的颜色? [复制]
【发布时间】:2018-04-11 10:25:24
【问题描述】:

我有一个随机标志生成器的程序。我为旗帜制作了一个白色的“背景”,以及不同的白色符号等。它们是白色的原因是我可以使用 RGB 值对其进行着色。问题是,我不知道该怎么做(如果可能的话),那么是否可以在 pygame 中对图像进行 blit 并为其赋予 RGB 值? 例如(这可能是不正确的,但最后 2 个 blits 中的第 2 个元组代表 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))

【问题讨论】:

    标签: python pygame blit


    【解决方案1】:

    您可以使用pygame.Surface.fill 方法用纯色填充表面,例如:

    background.fill((0, 100, 200))
    

    上面的行将填满整个图像,甚至是透明像素。

    您还可以传递 special_flags 参数以使用不同的 blending mode

    background.fill((0, 100, 200), special_flags=pygame.BLEND_MULT)
    

    这不会影响完全透明的像素。


    如果您只想绘制矩形、圆形或多边形等形状,请使用pygame.draw(或pygame.gfxdraw)模块中的函数。

    【讨论】:

      猜你喜欢
      • 2015-08-29
      • 2019-05-23
      • 2022-11-18
      • 2013-10-27
      • 2022-01-24
      • 1970-01-01
      • 2013-03-26
      • 1970-01-01
      • 2013-05-26
      相关资源
      最近更新 更多