代码之家  ›  专栏  ›  技术社区  ›  Aaron Digulla

pygame中的混合模式是什么意思?

  •  7
  • Aaron Digulla  · 技术社区  · 16 年前

    Surface.blit 在1.8中有一个新参数:混合。定义了以下值:

    • BLEND_ADD
    • BLEND_SUB
    • BLEND_MULT
    • BLEND_MIN
    • BLEND_MAX
    • BLEND_RGBA_ADD
    • BLEND_RGBA_SUB
    • BLEND_RGBA_MULT
    • BLEND_RGBA_MIN
    • BLEND_RGBA_MAX
    • BLEND_RGB_ADD
    • BLEND_RGB_SUB
    • BLEND_RGB_MULT
    • BLEND_RGB_MIN
    • BLEND_RGB_MAX

    2 回复  |  直到 16 年前
        1
  •  12
  •   talljosh    9 年前

    您可以在此处找到混合操作的源: surface.h

    基本上,“添加”将两个源像素相加,并在255处剪裁结果。SUB减去两个像素并在0处剪辑。

    MULT result = (p1 * p2) / 256

    MIN :选择每个通道的较低值(不是整个像素),因此如果pixel1为 (100,10,0) 而像素2是 (0,10,100) ,你得到 (0,10,0)

    MAX :与最小值相反(即。 (100,10,100) )

    0 0 =无效, 255 128 : result = .5*source + .5*destination ).

    有用效果:若要使某个区域变暗,请使用混合模式0,将源/戳记曲面填充为黑色,并将alpha设置为 10 : (0,0,0,10)

    要使其变亮,请使用白色 (255,255,255,10) .

        2
  •  2
  •   Joey Gumbo    16 年前

    这些是混合模式,用于在彼此的顶部合成图像。混合模式的名称已经告诉您底层操作。

    这个 BLEND_* 常量只是对象的别名 BLEND_RGB_* 常数和 BLEND_RGBA_*

    有关不同混合模式及其各自效果的一般信息,请参见 here .

    推荐文章