计算反色的算法

Ric*_*hez 27 algorithm colors

我对每个片段的RGB颜色范围为0.0到1.0,我需要一个算法来获得颜色的反转,任何想法我该怎么做?

Mar*_*som 35

newR = 1.0 - r
newG = 1.0 - g
newB = 1.0 - b
Run Code Online (Sandbox Code Playgroud)

如果颜色具有预乘的Alpha值,请使用alpha而不是1.0:

newR = a - r
newG = a - g
newB = a - b
Run Code Online (Sandbox Code Playgroud)

  • @AquariusPower通知我说"预乘"alpha,这意味着R,G,B都不能大于A.如果初始值在边界内,倒置的也是如此,不需要检查上溢/下溢. (3认同)

小智 9

如果您使用RGB值为255,您可以执行以下操作:

newR = 255 - r;
newG = 255 - g;
newB = 255 - b;
Run Code Online (Sandbox Code Playgroud)

要理解这个概念,请将每个值设想为从0到255的数字线.如果您在该数字线上绘制数字,则该数字是距数字行开头的距离.为了否定它,数字必须传到数字线的另一端.该算法基本上翻转数字行而不移动开头或结尾.我们的数字行是从0到255,因此,如果数字距离开头10(10),现在它距离结尾(245)10,因此否定颜色.

  • RGB =(127,127,127) 周围的值的情况怎么样? (2认同)