C#使颜色变暗直至可读的最佳方法
本文关键字:最佳 方法 颜色 | 更新日期: 2023-09-27 18:21:39
使颜色变暗直到可读的最佳方法是什么?我有一系列的标题都有相关的颜色,但其中一些颜色很浅,其中绘制的任何文本都无法阅读。我一直在摆弄HSB,我似乎无法找到一种使颜色变暗而不使其看起来像银色的算法。
我基本上只是在做这个,但它似乎没有得到我所说的"好"结果:
Color c =
FromHSB(
orig.A,
orig.GetHue(),
orig.GetSaturation(),
orig.GetBrightness() > .9 ?
orig.GetBrightness() - MyClass.Random(.5, .10)
: orig.GetBrightness());
我想我也想改变饱和度。有标准的方法吗?
我基本上只是拼凑了一个随机化器,如果RGB值的总和太低,或者任何一项都太低,它会向RGB值添加组件。这是一种不严格的方法,但似乎能产生良好的效果。
double threshold = .8;
for (int j = 0; j < 3; j++)
{
if (color.GetBrightness() > threshold)
{
color[j] -= new MyRandom(0, 20/255);
}
}