如何混合两种RGB颜色?

问题描述 投票:0回答:1

我有一个 C# 应用程序,其中有多个位置,每个位置都有多个节点。我对每个位置执行 ping 操作,如果有响应,则显示为绿色,绿色的深浅取决于响应时间;响应越短,颜色越绿。

如果未收到对 ping 的响应,则颜色将为红色。

基于每个位置的节点数量以及每个节点可能的不同颜色,我想为该位置提供一种颜色,该颜色源自所有子节点颜色,即其子节点颜色的混合。

我该怎么做?

该控件是一个TreeView。

c# treeview rgb
1个回答
0
投票

看到你在这里并没有真正的答案,这是我在 JavaScript 中的做法。

我希望您转换为 C# 不会太难。

// Accepts two hex colors and returns a blended RGB color.

function BlendColors(C1,C2){

var R1=parseInt(C1.substring(1,3),16), G1=parseInt(C1.substring(3,5),16), B1=parseInt(C1.substring(5,7),16);

var R2=parseInt(C2.substring(1,3),16), G2=parseInt(C2.substring(3,5),16), B2=parseInt(C2.substring(5,7),16);

return 'rgb('+Math.round((R1+R2)/2)+','+Math.round((G1+G2)/2)+','+Math.round((B1+B2)/2)+')';}

注意:未考虑 Alpha 通道。

© www.soinside.com 2019 - 2024. All rights reserved.