我知道这不会直接反转颜色,只会“反对”它。我想知道是否有人知道一种简单的方法(几行代码)来将颜色从任何给定的颜色反转?
目前,我有这个(这不完全是反转的定义,因为如果我将其传递为灰色/灰色,它将返回极其相似的内容,例如127、127、127):
const int RGBMAX = 255; Color InvertMeAColour(Color ColourToInvert) { return Color.FromArgb(RGBMAX - ColourToInvert.R, RGBMAX - ColourToInvert.G, RGBMAX - ColourToInvert.B); }
这取决于您“反转”颜色是什么意思
您的代码提供了“负”颜色。
您是否要寻找青色的红色,紫色的绿色,黄色的蓝色(依此类推)?如果是这样,则需要在HSV模式下转换RGB颜色(您将在此处进行转换)。
然后你只需要反转色彩值(变动Hue的360-Hue),并重新转换为RGB模式。
Hue
360-Hue
编辑:亚历克斯Semeniuk提到,改变Hue由(Hue + 180) % 360是更好的解决方案(它不倒置色调,但发现在色环相反的颜色)
(Hue + 180) % 360