You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何混合两个pygame.Color对象并自定义各自的混合占比

两个pygame.Color对象带权重混合的实现方案

我们可以通过对两个颜色的RGBA四个通道分别做加权线性插值得到混合后的通道值,再封装为新的pygame.Color对象即可。权重参数通常设置为0~1之间的浮点数,代表第二个颜色在混合结果中的占比。

完整实现代码

import pygame

def blend_colors(color1: pygame.Color, color2: pygame.Color, weight: float) -> pygame.Color:
    # 限制权重范围,避免通道值溢出
    weight = max(0.0, min(1.0, weight))
    # 对RGBA四个通道分别做加权插值,结果转为整数
    r = int(color1.r * (1 - weight) + color2.r * weight)
    g = int(color1.g * (1 - weight) + color2.g * weight)
    b = int(color1.b * (1 - weight) + color2.b * weight)
    a = int(color1.a * (1 - weight) + color2.a * weight)
    return pygame.Color(r, g, b, a)

# 你的场景使用示例
pygame.init()
white = pygame.Color(255, 255, 255)
red = pygame.Color(255, 0, 0)

# 示例:白色占70%、红色占30%,混合得到浅粉色
light_pink = blend_colors(white, red, 0.3)
# 示例:白色占30%、红色占70%,混合得到深粉色
dark_pink = blend_colors(white, red, 0.7)

如果不需要处理透明度,直接删除alpha通道的计算逻辑即可,pygame.Color创建时不传入alpha参数会默认设为255(完全不透明)。

内容的提问来源于stack exchange,提问作者EmeraldThunder-

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 00:06:00